由于包装器DIV,滚动事件永远不会触发,而.scrollTop()始终返回0

Cha*_*yra 0 html javascript css jquery twitter-bootstrap

基本上我正在尝试做的是使用一个滚动事件并使用jquery scrollTop()同时使用这个[画布菜单] [1]

这是一个小提琴!http://jsfiddle.net/k6hsvp1a/

这里的代码没有按预期工作:(滚动事件永远不会触发,scrollTop()总是返回0)

$( window ).on('scroll', function() {
  console.log($(window).scrollTop());
  console.log('scrolling!');
});
Run Code Online (Sandbox Code Playgroud)

我的理解是,因为非画布菜单使用相对定位的包装器div,所以scroll事件永远不会触发,因为$(window).scrollTop()总是返回零.

如何使滚动事件工作并使用scrollTop()?

gve*_*vee 7

调试时间......这有点沉重,但在这种情况下工作:

$("*").on('scroll', function() {
  console.log($(this));
});
Run Code Online (Sandbox Code Playgroud)

"*"适用于所有的元素.

检查出控制台:

[div.st-content,context:div.st-content,jquery:"1.9.1",构造函数:function,init:function,selector:""...]

所以我们的滚动事件由.st-content触发

$(".st-content").on('scroll', function() {
  console.log($(this).scrollTop());
  console.log("scrolling");
});
Run Code Online (Sandbox Code Playgroud)