2

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

我正在尝试这个:

    $("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 );     
        }   
    });

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

4

1 回答 1

1

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

下面的代码实际上是按页滚动的,将 更改$(window).height()为固定的理想值。(演示: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());
    }
});

演示:http: //jsfiddle.net/v5DZ9/

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

于 2013-03-01T21:32:08.627 回答