将箭头键映射到滚轮功能?

时间:2017-07-25 12:32:17

标签: javascript jquery html accessibility scrollwheel

我正在客户端网站上运行幻灯片。幻灯片显示每张幻灯片的动画,并且单独依赖于鼠标的滚轮,尽管它也可以滑动'在触摸屏设备中。

这里需要注意的是,在使用滚轮时,页面实际上并没有 scoll,它只会激活下一个幻灯片动画。这个网页实际上从未在传统意义上被骂......

然而,有些人不使用滚轮,他们使用键盘箭头。

有没有办法,理想情况下使用JavaScript,强制箭头键模拟鼠标滚轮的单个滚动?

我为缺乏代码或以前的努力而道歉 - 我无法找到与此问题相关的任何内容,并且代码已完全嵌入到幻灯片扩展程序中。我希望添加自己的JS来补充基础幻灯片。

3 个答案:

答案 0 :(得分:2)

您可以尝试使用以下内容通过代码触发gallery元素上的mousewheel事件:

var element = <reference to the element the mousewheel events are bound to>

document.addEventListener('keydown', function(e){
    var event = new Event('MouseEvents');
    event.initEvent('mousewheel', true, true);

    switch(e.keyCode){
        case '37':
            event.wheelDelta = -1;
            element.dispatchEvent(event);
            break;
        case '39':
            event.wheelDelta = 1;
            element.dispatchEvent(event);
            break;
    }
});

https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events

答案 1 :(得分:0)

你可以尝试这样的事情。这不是一个实际的解决方案,而是一种方法。

$('#someContainer').scroll(function(){
       $( "#target" ).keydown();
    })

答案 2 :(得分:0)

你可以这样做:

yourElement.addEventListener('onkeydown', function(e) {
    var key = e.which || e.keyCode;
    if (key === 37) { // arrow left
        // Your code here
    } else if (key === 39) { // arrow right
        // Your code here
    }
});