编辑
var setInitPos = true;
function loop() {
$(".image").each(function() {
// some other code
if (imageIsVisible) {
// some other code
// Set variable initPos only once for each item
if (setInitPos) {
initPos = $(window).scrollTop();
setInitPos = false;
}
}
// some other code
})
}
$(window).scroll(function(){ loop() }
如果某个项目在视口中可见,请为每个变量的值填充一次initPos。
但是现在第二项以setInitPos = false开头!这是为什么?
最佳答案
编辑
在每个DOM元素上持久化initPos
的最佳方法是将其附加到每个DOM元素,您可以使用jQuery
的.data()
$(".image").each(function() {
var initPos = $(this).data('initpos') || 0;
// some other code
if (imageIsVisible) {
// some other code
// Set variable initPos only once for each item
if (!initPos) {
$(this).data('initpos',$(window).scrollTop());
}
}
关于javascript - JS/jQuery –在循环内检查一次初始位置(滚动事件),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37275685/