Javascript 使用'导航到页面的部分;j';和';k';钥匙
我试图找到最简单的代码,无论是独立代码还是jQuery代码,都可以做到这一点:当我在键盘上按j时,我被重定向到下面的下一个div,当我按k时,我被发送回上面的div。如果它可以平滑滚动,则需要额外的点数。我认为您需要结合使用以下两个插件: 及 你可以用这种方式: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
$(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,我没有看到这个问题,我在发布之前搜索了一下,但很抱歉。