製作網頁畫面捲動不同步效果
點上圖可以看效果。
最近國外網站流行這種,當我們滾動捲軸時,背景的圖片不同步捲動的效果,稍微思考一下,其實也不會很難做,剛好看到有篇文章介紹,就自己也實作一個,其實也是最近剛好有需要用到。
簡單的說我們需要幾個div,讓他的position設為fixed,到時在根據捲動scrollbar距離去改變每個div的top的高度就可以了。
他這邊是使用一個基準div去讓其他的div去變化位置,也可以使用一個會隨scrollbar位置變化的參數去設定每個div的位置。
這邊是CSS
- .figure{
- width:500px;
- height:500px;
- position:fixed;
- }
- #f1{
- background:url(01.png);
- left:0;
- top:280px;
- }
- #f2{
- background:url(02.png);
- left:200px;
- top:0px;
- }
- #f3{
- background:url(03.png);
- right:0px;
- top:50px;
- }
- #f4{
- background:url(04.png);
- right:200px;
- top:160px;
- }
之後再參考以下的js就可以了。
- var h1 = $("#f1").offset().top;
- var h2 = $("#f2").offset().top;
- var h3 = $("#f3").offset().top;
- var h4 = $("#f4").offset().top;
- $(window).scroll(function(){
- var a = $(window).scrollTop();
- var y = $("#f0").offset().top;
- var p = a/(y-a);
- var pp1 =h1-6*p+"px";
- $("#f1").css({"top":pp1});
- var pp2 =h2-8*p+"px";
- $("#f2").css({"top":pp2});
- var pp3 =h3-4*p+"px";
- $("#f3").css({"top":pp3});
- var pp4 =h4-2*p+"px";
- $("#f4").css({"top":pp4});
- });
其實之前有找到一個plugin,有興趣也可以試試看。
Stellar.js
留言