我试图使当用户滚动到某个点(距顶部1250px)时,脚本将运行一个功能“ just ONCE”,然后当用户从其之前的点滚动至另一点1250px(距顶部2500px)时),脚本将再次运行该函数。
但是,我的脚本在1250 px之后继续运行该函数,已经在var current_post中添加了另一个1250 px,因此,此时var current_post应该为2500,并且如果var offset为1600,则该函数不应运行,但是正在继续运行。
Java脚本
$(window).scroll(function() {
var offset = $(window).scrollTop();
var current_pos = 1250;
if(offset > current_pos) {
current_pos += 1250;
//do some function
}
});
请帮助我发现我的错误并更正对此的理解。
最佳答案
问题在于,每次触发事件时,您都将current_pos
设置回1250。因此,您永远无法使用更新后的值。
尝试在事件处理程序外部设置current_pos
变量,这样就不会在每个事件中将其重新分配给1250。
var current_pos = 1250;
$(window).scroll(function() {
var offset = $(window).scrollTop();
if(offset > current_pos) {
current_pos += 1250;
//do some function
}
});
关于javascript - 即使不满足条件,if语句中的Javascript函数仍然运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31916511/