当我从$(窗口)“向上”滚动时,我希望得到一个事件.scrollTop == 0.
如果您有以下代码:
@H_403_8@$(window).scroll(function(){ console.log("scrolling") });
在文档<窗口高度然后该事件永远不会触发因为$(window).scrollTop没有改变,但这并不意味着没有鼠标滚动输入.无论页面是否移动,我都希望在鼠标滚动时触发事件.
最佳答案
看起来像你在寻找:
原文链接:https://www.f2er.com/jquery/428696.html@H_403_8@$(document).on('mousewheel DOMMouseScroll MozMousePixelScroll',function(event,delta) { console.log('mousewheel'); //you could trigger window scroll handler $(window).triggerHandler('scroll'); });
其他方式是在支持事件捕获阶段的现代浏览器上捕获滚动事件(IE> 8).这可以用于任何动态元素.由于jQuery没有实现捕获阶段,因此必须使用javascript addEventListener()方法.这里是一个实现逻辑的示例,用于获取textarea的滚动方向:
@H_403_8@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);