Javascript 使用'导航到页面的部分;j';和';k';钥匙

Javascript 使用'导航到页面的部分;j';和';k';钥匙,javascript,jquery,keyboard,navigation,Javascript,Jquery,Keyboard,Navigation,我试图找到最简单的代码,无论是独立代码还是jQuery代码,都可以做到这一点:当我在键盘上按j时,我被重定向到下面的下一个div,当我按k时,我被发送回上面的div。如果它可以平滑滚动,则需要额外的点数。我认为您需要结合使用以下两个插件: 及 你可以用这种方式: $(document).bind('keydown', 'j', whenyoupressj); $(document).bind('keydown', 'j', whenyoupressk); 而实际的滚动部分可能是: $.sc

我试图找到最简单的代码,无论是独立代码还是jQuery代码,都可以做到这一点:当我在键盘上按j时,我被重定向到下面的下一个div,当我按k时,我被发送回上面的div。如果它可以平滑滚动,则需要额外的点数。

我认为您需要结合使用以下两个插件:

你可以用这种方式:

$(document).bind('keydown', 'j', whenyoupressj);
$(document).bind('keydown', 'j', whenyoupressk);
而实际的滚动部分可能是:

$.scrollTo( '#someid', 800, {easing:'elasout'} );

我会用jQuery这样做:

$(document).keydown(function (e) {

    // Handle only [J] and [K]...
    if (e.keyCode < 74 || e.keyCode > 75) {
        return false;
    }

    // Find the "active" container.
    var active = $('div.active').removeClass('active');
    var newActive;

    // Handle [J] event.
    if (e.keyCode == 74) {
        newActive = active.next('div');

        //if (newActive.index() == -1) {
        //    newActive = $('div', container).last();
        //}
    }
    // Handle [K] event.
    else if (e.keyCode == 75) {
        newActive = active.prev('div');

        //if (newActive.index() == -1) {
        //    newActive = $('div', container).first();
        //}
    }

    if (newActive !== undefined) {
        newActive.addClass('active');
        $(document).scrollTop(newActive.position().top);
    }
});
$(文档).keydown(函数(e){
//仅处理[J]和[K]。。。
如果(e.keyCode<74 | | e.keyCode>75){
返回false;
}
//找到“活动”容器。
var active=$('div.active').removeClass('active');
var-newActive;
//处理[J]事件。
如果(e.keyCode==74){
newActive=active.next('div');
//if(newActive.index()=-1){
//newActive=$('div',container).last();
//}
}
//处理[K]事件。
否则如果(e.keyCode==75){
newActive=active.prev('div');
//if(newActive.index()=-1){
//newActive=$('div',container.first();
//}
}
如果(新活动!==未定义){
newActive.addClass('active');
$(文档).scrollTop(newActive.position().top);
}
});

你不能加分,所以不要骗我!!!可能重复我的意思是额外的分数,哈哈。Artsemis,我没有看到这个问题,我在发布之前搜索了一下,但很抱歉。