如何通过在javascript / jQuery中拖动窗口的滚动来区分滚动鼠标和滚动

我有一个基于滚动实现的function。 这是小片段::

$(window).bind('scroll',function(event) { console.log(event.type); //Task to do } 

在这里,我想区分绑定是通过mouseScroll还是通过拖动滚动来完成的。 通过检查event.type,两者都返回“滚动”作为事件类型。

您可以使用wheel DOM事件来检测mousewheel事件:

 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; }); 

的jsfiddle

注意 – 不要将轮子与已弃用的非标准鼠标滚轮事件混淆。