如何跟踪滚动到哪个div位置?当div高度不固定而且不确定时(从db select),如果滚动到每个div然后做某事怎么做...
我应该将每个div位置push存入数组然后如果在数组中滚动位置然后滚动到键div?但这似乎会崩溃...... ..
<div class="1">1</div> // 10px height
<div class="2">2</div> // 13px height
<div class="3">3</div> // 11px height
… // … height
答案 0 :(得分:2)
DOM加载时,所有元素都有一个偏移量。
如果您想将所有顶部推入阵列,请执行以下操作。然后在滚动时,将窗口滚动位置与数组进行比较。如果它与数组编号匹配,请使用该数组编号执行所需操作。 这是未经测试的代码,但理论是
var divTops = []; //Start an empty array
$(document).ready(function(){ //When the DOM loads
$('div').each(function(e){ //For each div
var top = $(this).offset().top; //Get its top
divTops.push(top); //and push that top into the array
});
});
$(window).scroll(function(){ //When the user scrolls
var scrolled = divTops.indexOf($(window).scrollTop()); //get the index number
if(scrolled === 0){ // Use the index number to control whatever is there.
//Do something with the first div
} else if(scrolled === 1){
//Do something with the second div
} else if(scrolled === 2){
//Do something with the third div
} else {
}
});