滚动到div只有1次后执行一个功能

时间:2016-04-19 13:06:02

标签: javascript jquery html scroll window

我想在滚动到某个div之后只执行一次函数,但是我在下面的方式执行它,它会在滚动后继续触发该函数。

$(window).scroll(function() {
                var hT = $('#test').offset().top,
                hH = $('#test').outerHeight(),
                wH = $(window).height(),
                wS = $(this).scrollTop();
                if ((wS >= (hT+hH-wH)) && (i < 4)){
                  myfunction();
                }
              });

我希望myfunction()只执行一次 谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

执行myfunction一次后,删除scroll处理程序

$(window).on('scroll.myfunction', function() {
  var hT = $('#test').offset().top,
    hH = $('#test').outerHeight(),
    wH = $(window).height(),
    wS = $(this).scrollTop();
  if ((wS >= (hT + hH - wH)) && (i < 4)) {
    myfunction();
    $(window).off('scroll.myfunction');
  }
});