我正在寻找一种方法来停止鼠标中键,使浏览器开始滚动,并显示小滚动'指南针'。
我见过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:
我更有兴趣阻止小滚动“罗盘”而不是阻止页面滚动。我想从我最初的描述中不是很清楚。
答案 0 :(得分:27)
使用:
$('body').mousedown(function(e){if(e.button==1)return false});
适用于Chrome:http://jsfiddle.net/PKpBN/3/
答案 1 :(得分:1)
没有必要为此包含jQuery。
如果您使用的是jQuery,那么这里已经有了一些很棒的答案。如果没有,你可以使用vanilla JS:
document.body.onmousedown = function(e) { if (e.button === 1) return false; }
答案 2 :(得分:0)
尝试使用return false;
代替e.preventScrolling();
答案 3 :(得分:0)
使用最新版本的Firefox和chrome测试
document.body.onmousedown = function(e) {
if(e.button == 1) {
e.preventDefault();
return false;
}
}
答案 4 :(得分:-1)
document.body.style.overflow=allowScroll?"":"hidden";
答案 5 :(得分:-4)
如果您想完全停止滚动,请输入以下代码:
window.onscroll = function() {
document.body.scrollTop = 0;
}
这将有效地禁用中间按钮..