当用户使用jQuery滚动到页面上的特定部分时触发事件

时间:2017-02-07 07:12:58

标签: jquery

$(window).scroll(function() {
//$(window).data('scrollEvent', function() {
var hT = $('.section1').offset().top,
   hH = $('.section1').outerHeight(),
   wH = $(window).height(),
   wS = $(this).scrollTop();
if (wS > (hT+hH-wH)){
     //I do something
     $(window).off("scroll");
}
}); 

使用.off()仅触发一次事件。但是,即使在使用$(window).on(" scroll")之后,也无法再触发页面上后续部分的事件;

如何在滚动

时最好一次触发页面上所有部分的事件

1 个答案:

答案 0 :(得分:0)

首先,你必须计算window.scrollTop

var wS = $(window).scrollTop();
$(window).scroll(function() {
  var hT = $('.section1').offset().top,
    hH = $('.section1').outerHeight(),
    wH = $(window).height();
  if (wS > (hT + hH - wH)) {
    console.log('scrolled');
    $(window).off("scroll");
  }
});