繁体   English   中英

背景图像放大效果。

[英]background image zoomin Effect.

这是我的代码

HTML

<h1 class="logo-title"><span>DAVE</span></h1>

CSS

h1.logo-title {background: url(bg.jpg) no-repeat;background-position: 50% 100%;-webkit-background-clip: text;}

我正在尝试像这些网站一样使用背景图像放大和缩小动画效果。 这是演示。 http://wowslider.com/jquery-slider-bar-kenburns-demo.html http://owwwlab.com/toranj/index-2.html

请为我的背景图片提供解决方案。 在这种情况下有人可以帮助我。 ??

您可能会在这里得到这个主意:

HTML:

<div class="zoom-in strawberry">
</div>
<button onclick="zoomin(100, 2, 500)">Zoom In</button>

CSS:

.strawberry{
    background-image: url('http://dreamatico.com/data_images/strawberry/strawberry-6.jpg');
    background-repeat: no-repeat;
}

.zoom-in{
    display: block;
    width: 400px;
    height:350px;
    background-size: 400px;
}

脚本:

function zoomin(interval, sizeChangeEveryInterval, stopResizeWhenSizeReached){
    var timeout = setInterval(function(){
        var target = $(".zoom-in")
        var bgposx = target.css('background-position-x') ? parseInt(target.css('background-position-x')) : 0;
        target.css('background-position-x',(bgposx - sizeChangeEveryInterval) + "px");
        var bgposy = target.css('background-position-y') ? parseInt(target.css('background-position-y')) : 0;
        target.css('background-position-y',(bgposy - sizeChangeEveryInterval) + "px");
        var bgsize = !isNaN(parseInt(target.css('background-size'))) ? parseInt(target.css('background-size')) : 100;
        target.css('background-size',(bgsize + sizeChangeEveryInterval) + "px");
        if(stopResizeWhenSizeReached < bgsize) clearInterval(timeout)
    }, interval)
}

这是我的小提琴: http : //jsfiddle.net/ThisIsMarkSantiago/xm1zp09g/

最简单的方法是将img标签放在内容后面,然后进行transform: scale(110%,110%); 使用CSS对其进行动画处理:

div.container
{
    position: relative;
}
img.background
{
    position: absolute;
    z-index: -1;
    left: 0px;
    // .. etc etc
    transform: scale(100%, 100%);
    transform-origin: 50% 50%; // wherever you want the 'midpoint' to be at.
    transition: transform 5s linear;
}
img.background.active
{
    transform: scale(110%, 110%);
}

轻而易举。

您当然可以仅使用background-image完成此操作,但是从图像到图像的切换将更加困难。

您也可以使用纯CSS3动画解决此问题。 尽管可能并非每个平台都支持

这是一个有效的示例 (被黑并在chrome中测试):

 html, body { min-width: 400px; min-height: 300px; height: 100%; width: 100%; padding: 0; margin: 0; } .container { position: relative; height: 100%; width: 100%; background: #efefef; overflow: hidden; } .image { background-size: cover; background-repeat: no-repeat; position: absolute; top: 0; left: 0; right: 0; bottom: 0; -webkit-animation-name: zoom; animation-name: zoom; -webkit-animation-duration: 10s; animation-duration: 10s; -webkit-animation-direction: normal; animation-direction: normal; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; } .image-1{ background-image: url(http://www.chip.de/ii/917741674_393fa282fa.jpeg); } .image-2{ -webkit-animation-delay: 5s; animation-delay: 5s; background-image: url(http://www.chip.de/ii/917741714_fe3259c85e.jpeg); } @keyframes zoom { 0% {transform: scale(1,1); z-index: 2;} 49% {transform: scale(2,2);} 50% {opacity: 0} } @-webkit-keyframes zoom { 0% {-webkit-transform: scale(1,1); z-index: 2;} 49% {-webkit-transform: scale(2,2);} 50% {opacity: 0} } 
 <div class="container"> <div class="image image-1" style=""></div> <div class="image image-2" style=""></div> </div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM