【发布时间】:2015-03-04 01:49:09
【问题描述】:
我有一个页面,用户可以通过我在页面中创建的按钮向上和向下滚动。它通过使用 jQuery 中的 animate 函数在页面中的锚点之间跳转来实现这一点。
现在我有一些功能,我只想在网页由 Web 浏览器滚动条手动滚动时运行。澄清一下,通过鼠标滚轮或我自己的按钮滚动应该被排除在这个逻辑之外。
现在我有一种方法可以检测似乎有效的鼠标滚轮特定操作 (taken from here)...
var isMouseScroll = false;
window.addEventListener('wheel',function(e){
console.log('mouse wheel');
isMouseScroll = true;
});
window.addEventListener('scroll',function(e){
if(!isMouseScroll) {
console.log('scroll');
}
isMouseScroll = false;
});
但我不知道如何区分页面内容滚动,具体取决于它是由一段 javascript 代码还是由浏览器自己的滚动条激活的。例如,上面的代码在通过代码滚动或我手动拖动浏览器滚动条时运行。有没有人有更好的策略来分开检测这三个不同的事件?
【问题讨论】:
标签: javascript jquery scroll