我有一個div我想在觸發div和窗口頂部之間達到一定距離後動起來一次,但是在.scroll()函數內時滾動時不斷觸發動畫。在滾動觸發器後運行.animate()一次
這下面的代碼工作正常:
$(window).scroll(function(){
var a = $('.intro-text').offset().top;
console.log(a);
if (a > 100) {
$('.hide-me').fadeOut();
} else if (a < 100) {
$('.hide-me').fadeIn();
}
});
但如果我將它更改爲.animate(),它不斷地排隊,並永遠需要運行:
$(window).scroll(function(){
var a = $('.intro-text').offset().top;
console.log(a);
if (a > 100) {
$('.hide-me').animate({
left: -200
}, 1000);
} else if (a < 100) {
$('.hide-me').animate({
left: 0
}, 1000);
}
});
我的編碼技能AREN」盡我所能,但我希望在進入任何外部庫或插件之前瞭解jQuery /純JavaScript中是否有函數。任何幫助將不勝感激,謝謝。
您可以嘗試在淡出/淡入淡出之前放置'.stop()' – Pete
您需要'debounce'滾動事件,以便它不會持續觸發(通過插件或通過簡單的'setTimeout' /'clearTimeout '對)。您可能還想通過標記檢查它是否已經可見/隱藏,而不是依靠滾動位置。或者檢查':animated'。 –