防止 jQuery 操作在滚动时第二次发生

Prevent jQuery action from happening a second time on scroll

我有一些代码可以检测元素是否在视口中,然后触发一些代码,它通过计算与滚动顶部的距离来实现,我遇到的问题是它重新运行代码每次发生滚动事件并且元素在折叠上方时,有没有办法让它只触发一次?

$(document).ready(function(){
    $(document).scroll(function(){
    var scrollTop     = $(window).scrollTop(),
    elementOffset = $('.numbers').offset().top,
    distance      = (elementOffset - scrollTop);

    if(distance < $(window).height()){
      $('.ones').delay(1000).hide(1000, function(){
       $(this).html('6').show(1000, function(){
         $(this).delay(15000).hide(1000, function(){
            $(this).html('5').show(1000);
          });
        }); 
      });
      }else{
        return false;
      }    
    });
});

添加

flag=true

文件准备好后,立即在您的 if

中检查它
if (distance<... && flag===true)

并在 if 子句中将其设置为 false

flag = false