如何使用jQuery检测滚动?

时间:2014-05-23 13:55:32

标签: jquery scroll

我滚动这个工作正常:

$("body").animate({ scrollTop: $("body")[0].scrollHeight}, 1000);

但我也想检测自己何时滚动页面。

我尝试了所有这些:

$('window').on('scroll', function (e){
  console.log("scroll");
});

$('#historyScroll').on('scroll', function (e){
  console.log("scroll");
});

$('body').on('scroll', function (e){
  console.log("scroll");
});

$('document').on('scroll', function (e){
  console.log("scroll");
});

$('window').on({'scroll' : function (){
  console.log("scroll");
}});

$('#historyScroll').on({'scroll' : function (){
  console.log("scroll");
}});

$('body').on({'scroll' : function (){
  console.log("scroll");
}});
 $('document').on({'scroll' : function (){
  console.log("scroll");
}});


 $('window').on('scroll', function (){
  console.log("scroll");
});

  $('#historyScroll').on('scroll', function (){
  console.log("scroll");
});

 $('body').on('scroll', function (){
  console.log("scroll");
});

 $('document').on('scroll', function (){
  console.log("scroll");
});

但没有记录。我该怎么做才能弄清楚它为什么不起作用?

另见demo on JS Fiddle

3 个答案:

答案 0 :(得分:3)

只需删除选择器中windowdocument周围的单引号:

$(window).on('scroll', function() { ... });
// Or...
$(document).on('scroll', function() { ... });

windowdocument都是默认的JavaScript对象。例如,使用$('window')会尝试在文档中选择<window>元素。

答案 1 :(得分:2)

JSFiddle

你想尝试

$(document).scroll(function(){
  //code here
});

你试过了:

$('document').on({'scroll' : function (){
  console.log("scroll");
}});

并且已关闭,但您需要从选择器中删除',并从滚动功能中删除{:

您的版本会让jQuery查找名为<document>的HTML元素(它不存在)。与window相同,您不能使用'

答案 2 :(得分:1)

$(document).scroll(function(){
  //Whatever on scroll
});

<强> Working Demo