Tho*_*ggi 5 javascript jquery scroll javascript-events
当我向上滚动时,我希望得到一个事件$(window).scrollTop == 0
.
如果您有以下代码:
$(window).scroll(function(){
console.log("scrolling")
});
Run Code Online (Sandbox Code Playgroud)
在文档<窗口高度然后该事件从未触发的页面上,因为$(window).scrollTop
没有改变,但这并不意味着没有鼠标滚动输入.无论页面是否移动,我都希望在鼠标滚动时触发事件.
A. *_*lff 10
看起来像你在寻找:
$(document).on('mousewheel DOMMouseScroll MozMousePixelScroll', function(event, delta) {
console.log('mousewheel');
//you could trigger window scroll handler
$(window).triggerHandler('scroll');
});
Run Code Online (Sandbox Code Playgroud)
其他方法是scroll
在支持事件捕获阶段(IE> 8)的现代浏览器上捕获事件.这可以用于任何动态元素.由于jQuery没有实现捕获阶段,因此必须使用javascript addEventListener()
方法.这里是一个实现逻辑的示例,用于获取textarea的滚动方向:
document.addEventListener('scroll', function (event) {
var $elm = $(event.target);
if ($elm.is('textarea')) { // or any other filtering condition
// do some stuff
var direction = $elm.scrollTop() > ($elm.data('scrollTop') || 0) ? "down" : "up";
$elm.data('scrollTop', $elm.scrollTop());
console.log('scrolling', direction);
}
}, true);
Run Code Online (Sandbox Code Playgroud)