我正在寻找一种方法来阻止鼠标中键单击导致浏览器开始滚动,并显示小滚动“罗盘”。
[我见过Disabling middle click scrolling with javascript,但是解决方案比我想要的要复杂得多,而且似乎不适合我实际使用。
我正在寻找更明确的“这是您的方式”或“您不能这样做,儿子”。
我当然可以接受黑客和变通方法。
只是因为S.O.问题看起来与代码更好,这是当我单击鼠标右键或中键时用来关闭工具提示的内容。
msg.mousedown(function(e) {
if (e.which == 2) { //middle mouse click
msg.hide();
e.preventScrolling(); //if only this worked...
}
else if (e.which == 3) { //right mouse click
msg.hide();
}
}).bind('contextmenu', function(e) {
e.preventDefault();
}).click(function(e) {
e.stopPropagation();
});
编辑:jQuery,JavaScript,随便,让我们现在都玩的很好:)
编辑2:
我对阻止小滚动“罗盘”比停止页面滚动更感兴趣。我想从我的最初描述来看并不太清楚。
用途:
$('body').mousedown(function(e){if(e.button==1)return false});
在Chrome上有效:http://jsfiddle.net/PKpBN/3/
无需为此仅包含jQuery。
如果您使用的是jQuery,这里已经有一些不错的答案。如果没有,您可以使用香草JS:
document.body.onmousedown = function(e) { if (e.button === 1) return false; }
尝试使用return false;
代替e.preventScrolling();
使用最新版本的Firefox和chrome测试
document.body.onmousedown = function(e) {
if(e.button == 1) {
e.preventDefault();
return false;
}
}
document.body.style.overflow=allowScroll?"":"hidden";
如果您想完全停止滚动,请输入以下代码:
window.onscroll = function() {
document.body.scrollTop = 0;
}
这也将有效地禁用中间按钮。