如何禁用鼠标滚轮滚动

时间:2019-04-08 19:35:52

标签: javascript jquery html html5

我试过了,没用

$('body').bind("mousewheel", function() {
    return false;
});

然后我尝试了

$('body').hover(function (){
    $('body').css('overflow','hidden');
}, 
function (){
    $('body').css('overflow','auto');
})

有时可以,但是有时不可以。

是否有禁用鼠标滚轮的想法?

1 个答案:

答案 0 :(得分:0)

请注意,在当前版本的Chrome中,默认将滚动和滚轮处理程序视为被动,因此无法将其取消。参见feature info

我不确定是否可以使用jQuery的on方法指定活动处理程序,但是您可以使用内置的addEventListener来轻松实现这一点。另外,在这种情况下,return false无法正常工作,您需要致电preventDefault()

document.body.addEventListener('wheel', function(e){ e.preventDefault(); }, { passive: false });
p { width: 320px; }
<p>Lorem ipsum dolor sit amet, audire facilis no pri, ea eam duis laboramus, at pro atqui tollit meliore. Vis ut malorum vocibus percipit, nisl atqui ea sea. Illud errem te vix, ex facer omittam his. Ne sit consul suscipit. Eu usu percipit efficiendi dissentiet.</p>
<p>Te ius dictas oporteat facilisi. Dicta diceret debitis et vim. Paulo insolens comprehensam est cu, dolor assueverit eu mei. Pro an facilisis rationibus. Summo molestie mei cu. His nobis erroribus in, iuvaret repudiare delicatissimi mea ut, nec at elit nostro.</p>
<p>Ad augue invenire efficiendi qui, facilisi mediocritatem ei duo. Ceteros mnesarchum et has, at ius choro dolor verear. Purto sententiae interesset et vim, quis nisl facer vix ei. Est agam ocurreret assentior id, et partem fabellas vim.</p>

我已经在Chrome 73和Firefox 66中测试了该解决方案。为确保此功能在所有浏览器中均有效,请务必阅读MDNquirksmode