當滾動過去時,我想要淡入兩個對象,使用下面的代碼可以正常工作,但我想要的是第一個對象.cta-first
像現在一樣淡入,但是第二個對象.cta-second
在第一個之後淡入。有兩個對象在使用jQuery滾動時一個接一個地動畫
我不介意第二個對象一旦第一個對象在opacity: 1
或短時間(即1秒)後淡入。兩個對象位於同一行,因此將同時滾動到同一行。
如果有人能告訴我如何使用下面的代碼可以做到這一點,我真的很感激它,謝謝。
$(document).ready(function() {
$(window).scroll(function() {
var bottom_of_window = $(window).scrollTop() + $(window).height();
$('.cta-first').each(function() {
var bottom_of_object = $(this).offset().top + $(this).outerHeight();
if (bottom_of_window > bottom_of_object) {
$(this).animate({
'opacity': '1'
}, 2000);
}
});
$('.cta-second').each(function() {
var bottom_of_object = $(this).offset().top + $(this).outerHeight();
if (bottom_of_window > bottom_of_object) {
$(this).animate({
'opacity': '1'
}, 2000);
}
});
});
});
下面是目標對象的HTML。
<section class="sidebar">
<div class="sidebar-module">
<a href="/contact"><span class="cta-first">This text</span><span class="cta-second">That text</span></a>
</div>
</section>
UPDATE
所以我編輯通過@ pdoherty926建議的代碼,它現在看起來如下。如果我重新加載頁面,如果對象處於視圖中,它會正常工作 - 它們逐漸淡入淡出,但如果我在頁面的頂部重新加載並向下滾動時,只會出現.cta-first
,opacity: 1
未應用於第二。
任何人都可以看到爲什麼會發生這種情況嗎?謝謝。
只需添加,問題在於Chrome和Safari桌面瀏覽器,它在Safari iOS上運行良好。
$(document).ready(function() {
$(window).scroll(function() {
var bottom_of_window = $(window).scrollTop() + $(window).height();
$('.cta-first').each(function() {
var bottom_of_object = $(this).offset().top + $(this).outerHeight();
if (bottom_of_window > bottom_of_object) {
$.when($('.cta-first').animate({
opacity: 1
}, 2000))
.then(function() {
$('.cta-second').animate({
opacity: 1
}, 2000);
});
}
});
});
});
我可以看到這是如何工作的,儘管我迷失在如何將它實現到上面的代碼中,因爲我只是一個js初學者。謝謝。 – user3326054
我已經讓你的代碼部分工作(請參閱上面的更新),如果你能看到爲什麼它不完全工作,我將不勝感激回覆。謝謝。 – user3326054
查看更新的答案。 – pdoherty926