繁体   English   中英

使用Java取消鼠标中键滚动模式

[英]Cancel middle mouse button scroll mode using Javascript

当我在浏览器中单击鼠标中键时,它会像使用光标一样激活浏览器上的滚动模式 滚动光标 Esc键或下一次单击鼠标时,滚动模式将取消。 当我们在滚动模式下单击鼠标左键时,鼠标事件将以不同的顺序触发。 在IE中,中键向上和下一个鼠标向上或向下不触发。 在Chrome中,不会触发下一个鼠标上移事件。 有没有办法通过javascript取消滚动模式? 有什么办法可以按顺序触发所有事件?

提琴手

var mouseDowns = 0;
var mouseUps = 0;
$('body').on('mousedown', 'div', function () {
    $('#logs').prepend('<br/>mousedown' + mouseDowns++);
});
$('body').on('mouseup', 'div', function () {
    $('#logs').prepend('<br/>mouseup' + mouseUps++);
});

侦听mousedown事件,并在检测到鼠标中键时取消默认行为( 较旧的浏览器可能通过e.which属性为鼠标中键使用不同的索引 ):

 document.addEventListener("mousedown", function(e) { if (e.button === 1) e.preventDefault(); }); 

注册到鼠标滚轮事件,如下所示

[element].attachEvent("onmousewheel", MouseWheelHandler); // IE 6,7,8
[element].addEventListener("mousewheel", MouseWheelHandler, false); // IE9, Chrome, Safari, Opera
[element].addEventListener("DOMMouseScroll", MouseWheelHandler, false); // Firefox

并在处理程序中简单地返回false即可取消标准行为。

对于鼠标中键单击,

$('body').on('mousedown', 'div', function () {
if(event.button==1) {
     event.preventDefault();
     return event.returnValue = false;
}});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM