视差滚动

  近年来,视差滚动效果越来越流行,之前看到很多好多个地方出现了这个效果感觉特别的炫酷,之后 特意去查看了很多资料学习
  了下,接下来就和大家分享一下我所学习到的。
**首先什么是视差滚动呢?**
简单的说:视差滚动(Parallax Scrolling)就是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验。(大家可以
查看QQ浏览器官方网站查看效果)

下面我们就来简单的介绍一下这款未来网页设计的热点趋势之一的“视差滚动”吧。

首先是简单的页面布局(为了方便这里引用的都是网上的图片):

        <div id="back" class="scene">
        <img id="img01" src="http://www.alloyteam.com/wp-content/uploads/2014/01/001.png">
        <img id="img04" src="http://www.alloyteam.com/wp-content/uploads/2014/01/004.png">
        <img id="img07" src="http://www.alloyteam.com/wp-content/uploads/2014/01/007.png">
    </div>
    <div id="center" class="scene">
        <img id="img02" src="http://www.alloyteam.com/wp-content/uploads/2014/01/002.png">
        <img id="img05" src="http://www.alloyteam.com/wp-content/uploads/2014/01/005.png">
        <img id="img08" src="http://www.alloyteam.com/wp-content/uploads/2014/01/008.png">
    </div>
    <div id="front" class="scene">
        <img id="img03" src="http://www.alloyteam.com/wp-content/uploads/2014/01/003.png">
        <img id="img06" src="http://www.alloyteam.com/wp-content/uploads/2014/01/006.png">
        <img id="img09" src="http://www.alloyteam.com/wp-content/uploads/2014/01/009.png">
    </div>

接下来就是对给它们添加css样式(关键词:定位。另外给每张图片加top和left属性是为了更好的效果展示。)

<style>
body { height:3000px;}
.scene { position:absolute; width:100%; height:100%; }
img { position:absolute; }
#img01 { width:150px; top:200px; left:50px; }
#img02 { width:300px; top:800px; left:450px; }
#img03 { top:600px; left:150px; }
#img04 { width:200px; top:800px; left:400px; }
#img05 { width:300px; top:500px; left:500px; }
#img06 {top:1200px; }
#img07 { width:150px; top:250px; left:550px; }
#img08 { width:300px; top:100px; left:900px; }
#img09 {top:1400px; left:400px; }
</style>

最后就是最最重要的js了(eventTarget:执行这个事件的对象,比如div、ul<这里是:window>;
eventType:事件类型<这里是:scroll>;
eventHandler :函数。<这里是:自定义的onScroll函数>)

<script>
    var Back = document.getElementById("back");
    Center = document.getElementById("center");
    Front = document.getElementById("front");
var top1 = 0;
    top2 = 200;
    top3 = 700;
addEvent(window,'scroll',onScroll);
onScroll();
function onScroll(e){ 
    var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
    Back.style.top = top1+scrollTop*0.9+"px";
    Center.style.top = top2+scrollTop*0.7+"px";
    Front.style.top = top3+scrollTop*0.3+"px";
}
function addEvent(eventTarget,eventType,eventHandler){ 
    if(eventTarget.addEventListener){ 
        eventTarget.addEventListener(eventType,eventHandler,false);
    } else {
        if (eventTarget.attachEvent) {
            eventType = "on" + eventType;
            eventTarget.attachEvent(eventType, eventHandler);
        } else {
            eventTarget["on" + eventType] = eventHandler;
        }
    }
}

</script>

好了,以上代码就可以很好的实现我们想要的视差滚动效果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值