javascript - 在 CTRL+MOUSEWHEEL 事件上

标签 javascript jquery mouseevent keyboard-events jquery-events

我被要求为我们的页面站点实现 ctrl+mousewheel 事件,以便在用户放大或缩小时更改图像偏移。我找到了这个旧答案 Override browsers CTRL+(WHEEL)SCROLL with javascript我也试过这样做。 我下载了 jQuery Mouse Wheel Plugin用于实现,这是我的代码:

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');
            }
        });

事件单独运行良好,但如果我按住 CTRL 按钮并滚动鼠标,则不会触发滚轮事件。 有没有人对此有更好的解决方案,或者我做错了什么?

最佳答案

Fiddle , 为了让它工作,你必须在尝试之前先点击 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');
         }
    }
});

关于javascript - 在 CTRL+MOUSEWHEEL 事件上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33083484/

相关文章:

javascript - jQuery $.ajaxSetup header 适用于所有 ajaxRequest,即使被覆盖

jQuery文件上传: cannot upload file in Safari 11

javascript - 使用javascript和css拖动

在 x11 中捕获特定窗口中的鼠标指针

javascript - Mozilla Firefox 中的 jQuery keydown 事件处理问题

javascript - 我可以在构建元素时暂时关闭所有 CSS3 过渡/动画吗?

javascript - 过滤对象

javascript - 如何通过在 Rails 4.0 中使用 javascript 单击复选框将文本区域字段值复制到另一个文本区域字段

c++ - 点击QComboBox的下拉列表

javascript - React-Native 需要中断生产警告