$(窗口)。在( '滚动');设置后不起作用

时间:2017-09-18 16:51:22

标签: javascript jquery scroll progress-bar

我在里面做JS动画如果我不想在它到达它之后重复它所以我使用$(window).off('scroll');现在#container之后的每个元素都不能使用滚动事件而我试图打开滚动但它无效$(window).on('scroll');. 任何的想法?

$(window).scroll(function() {
   var hT = $('#container').offset().top,
       hH = $('#container').outerHeight(),
       wH = $(window).height(),
       wS = $(this).scrollTop();
    console.log((hT-wH) , wS);
   if (wS > (hT+hH-wH)){
   // some code
   $(window).off('scroll');


   }

});

1 个答案:

答案 0 :(得分:1)

你的电话会解除所有事件的束缚,而不只是一个。你需要取消绑定一个实例。它可以使用函数引用

完成
var myScroll1 = function () {
  $(window).off("scroll", myScroll1)
}
$(window).on("scroll", myScroll1)

或名称空间

$(window).on("scroll.scroll1", function () {
  $(window).off("scroll.scroll1", myScroll1)
})