我有一個可滾動包裝器中的三個div。我想讓每個div在從「包裝器」滾動出來時逐漸淡出,每次只有一個。如何讓div一次淡出一個
現在我滾動時,所有三個div都在同一時間淡出。我花了一段時間試圖弄清楚這一點,但還沒有找到解決辦法。
$(document).ready(function() {
$(window).scroll(function() {
$(".title").css("opacity", 1 - $(window).scrollTop()/300);
})
});
body {
margin: 0;
height: 100%;
}
.wrapper {
height: 1000px;
position: relative;
}
.title {
margin: 0 auto;
width: 100%;
background-color: #aaa;
height: 300px;
opacity: 1;
text-align: center;
font-family: 'helvetica';
font-size: 80px;
font-weight: 100;
color: #fff;
top: 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">
<div class="title">Image 1</div>
<br>
<div class="title">Image 2</div>
<br>
<div class="title">Image 3</div>
</div>
完美的作品!謝謝@jonas。如果你不介意,你能解釋一下這部分嗎? ($(window).scrollTop() - $(this).position()。top)/ 300)' 爲什麼我們不得不用'$(這個).position()。top'呢? – nfiona
我們不減去不透明度,而是設置不透明度以考慮滾動條的位置和元素在頁面中的位置。如果你沒有考慮到每個元素的位置,就沒有辦法將它們分開,並且它們會一直褪色(就像在你的例子中那樣)。 –
啊啊。謝謝! @jonas – nfiona