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

时间:2015-02-12 23:42:27

标签: javascript jquery 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;
      }    
    });
});

1 个答案:

答案 0 :(得分:1)

添加

flag=true

在文件准备就绪后直接在你的

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

并在if子句

中将其设置为false
flag = false