我试图使当用户滚动到某个点(距顶部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/

10-10 05:20