我試圖觸發用戶滾動到各種DOM元素(我需要這是響應各種屏幕尺寸)的操作。我首先用offset().top
得到各個元素的位置,然後我用scrollTop()
計算滾動的位置。它在某種程度上起作用,但是該操作在DOM元素開始之前觸發得太遠。我已經刪除了所有填充和利潤...觸發滾動過去的DOM元素
var hT = $('#bioAG').offset().top;
var hT2 = $('#bioTM').offset().top;
var hT3 = $('#contact').offset().top;
$(window).scroll(function() {
var ws = $(window).scrollTop()
if (ws > hT) {
$("#bioAG").addClass("fade-in");
} else if (ws > hT2){
$("#bioTM").addClass("fade-in");
} else if (ws > hT3) {
$("#contact").addClass("fade-in");
} else {console.log('none');};
})`
邏輯上滾動(每過一段時間),你應該重新計算你的變量.... –
我想我努力理解爲什麼會出現這種情況如果視口沒有調整大小。爲什麼DOM元素的位置在頁面第一次被調用時已經存在時會發生改變? – eabates
原因:1:你滾動頁面,2:調整窗口的大小,3:滾動和JS現在搞砸了(嗯...除非你的元素總是在固定的NNpx高度 - 這我想是不太可能。) –