如何将左右箭头键映射为上下键?

时间:2013-03-01 21:11:29

标签: jquery keydown

当我按下向左箭头时,我试图让网站向上滚动,当按下向右箭头时向下滚动。

我正在尝试这个:

    $("body").keydown(function(e){
        console.log( e.which );
        // left arrow
        if ((e.keyCode || e.which) == 37)
        {   
            e.keyCode = 38;
            e.which = 38;
            $("body").trigger( e );
        }
        // right arrow
        if ((e.keyCode || e.which) == 39)
        {
            e.keyCode = 40;
            e.which = 40;
            $("body").trigger( e );     
        }   
    });

但是工作不正常,你能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

尝试控制滚动而不是尝试触发和投掷箭头。见下文,

下面的代码实际上是按页面滚动,将$(window).height()更改为固定的理想值。 ( DEMO: http://jsfiddle.net/v5DZ9/1/

//This is for page scroll. Use a reduced height instead of $(window).height() 
//for controlled scroll.
$(document).keyup(function (e) {
    if (e.which == 39) {
       window.scrollTo(0, $(window).height() + $(document).scrollTop()); 
    } else if (e.which == 37) {          
       window.scrollTo(0, $(document).scrollTop() - $(window).height());
    }
});

DEMO: http://jsfiddle.net/v5DZ9/

注意:请谨慎使用,此代码未经测试。