Ale*_*erd 3 javascript jquery mouseevent keyboard-events jquery-events
我被要求为我们的页面网站实现ctrl + mousewheel事件,以便在用户放大或缩小时更改图像偏移.我发现这个旧答案使用javascript覆盖浏览器CTRL +(WHEEL)SCROLL,我试图做同样的事情.我为实现下载了jQuery Mouse Wheel插件,这是我的代码:
var isCtrl = false;
$(document).on('keydown keyup', function(e) {
if (e.which === 17) {
isCtrl = e.type === 'keydown' ? true : false;
}
}).on('mousewheel', function(e, delta) { // `delta` will be the distance that the page would have scrolled;
// might be useful for increasing the SVG size, might not
if (isCtrl) {
e.preventDefault();
alert('wheel');
}
});
Run Code Online (Sandbox Code Playgroud)
事件可以单独运行,但如果我按住CTRL按钮并转动鼠标,则轮子事件不会触发.有没有人有更好的解决方案,或者我做错了什么?感谢帮助
小提琴,为了使它起作用,你必须先在result
框中点击才能尝试.
$(window).bind('mousewheel DOMMouseScroll', function(event)
{
if(event.ctrlKey == true)
{
event.preventDefault();
if(event.originalEvent.detail > 0) {
console.log('Down');
}else {
console.log('Up');
}
}
});
Run Code Online (Sandbox Code Playgroud)
要检查ctrl键是否被点击,事件已经提供了一种方法来做到这一点。尝试这个:
.on('mousewheel', function(e) {
if (e.ctrlKey) {
e.preventDefault();
alert('wheel');
}
});
Run Code Online (Sandbox Code Playgroud)
这也适用于e.shiftKey
,e.altKey
等我只会侦听scroll事件,并在那里我会检查是否ctrlKey
已关闭。
归档时间: |
|
查看次数: |
6389 次 |
最近记录: |