2017-03-16 73 views
3

探索網頁,我發現這個網站的這個驚人的效果http://www.guglieri.com/ (滾動效果) 我想建立一個腳本,重新創建相同的效果,但我不明白的邏輯行爲。滾動固定部分

基本上,我開始計算身高,將每個部分的位置屬性設置爲「絕對」,並將身體的高度與每個部分的高度相加。

現在,想法是將數據保存到數組中,當scrolltop爲主或等於此偏移量時...我開始通過translateY屬性將區域移動到頂部,當它停止移動時等於視口的高度。但現在我卡住了!

我搜索了一個已經存在的插件,但我沒有找到任何東西。所以,請幫我找到了解決辦法;)

概念在這裏:

var 
 
    body = $('body') 
 
    section = $('section'); 
 
section.each(function(i,el){ 
 
    $(el).css({ 
 
    'z-index' : section.length - i 
 
    }) 
 
    body.height(body.height()+$(el).height()); 
 
});
body { 
 
    margin: 0; 
 
} 
 
section { 
 
    width: 100vw; 
 
    height: 100vh; 
 
    position: absolute; 
 
    top: 0; 
 
    left: 0; 
 
    font-family: sans-serif; 
 
} 
 
section.a { 
 
    background-color:indianred 
 
} 
 
section.b { 
 
    background-color:royalblue 
 
} 
 
section.c { 
 
    background-color:deepskyblue 
 
} 
 
section.d { 
 
    background-color:tomato; 
 
} 
 

 
section div { 
 
    position: absolute; 
 
    top: 50%; 
 
    left: 50%; 
 
    transform:translate(-50%,-50%); 
 
    font-size: 6em; 
 
    color: #FFF; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
 

 
<section class="a"> 
 
    <div>a</div> 
 
</section> 
 
<section class="b"> 
 
    <div>b</div> 
 
</section> 
 
<section class="c"> 
 
    <div>c</div> 
 
</section> 
 
<section class="d"> 
 
    <div>d</div> 
 
</section>

回答

2

這是視差效果。

這裏有一個簡單的腳本視差:http://pixelcog.github.io/parallax.js/

還有其他多個腳本在網絡上也教程如何根據您的需要使自己的視差效果。

2

你可以通過的視差效果的基礎上w3schools