编辑
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() }
如果某个项目在视口(viewport)中可见,则使用每个项目的值填充 var initPos 一次。
但是现在第二项以 setInitPos = false 开头!这是为什么?
最佳答案
它是全局的,因为您在全局范围内指定了它。
要使其成为迭代的本地变量,然后在函数内声明它。为此,您需要使用 varb 关键字(如果您使用 ES6,则需要使用 let)
要使其成为图像的本地属性,请使用 this.initPos,这样您就可以为每个图像元素创建一个新属性。
关于javascript - JS/jQuery – 在循环内检查初始位置(滚动事件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37275685/