jQuery中的键盘导航:按两次而不是一次

jQuery中的键盘导航:按两次而不是一次,jquery,keyboard,Jquery,Keyboard,我的页面上有一个键盘导航,允许在“.layout”类之间导航。问题是在第一次开始页面后,需要按两次“向下”箭头键来触发页面移动。怎么了 按键盘上的“向上”和“向下”可查看: PS:我必须保留“#page”而不是“html,body”,否则代码会与其他函数冲突 $(function(){ var positions = [] $('.layout').each(function(){ positions.push(parseInt($(this).offset().

我的页面上有一个键盘导航,允许在“.layout”类之间导航。问题是在第一次开始页面后,需要按两次“向下”箭头键来触发页面移动。怎么了

按键盘上的“向上”和“向下”可查看:

PS:我必须保留“#page”而不是“html,body”,否则代码会与其他函数冲突

$(function(){
    var  positions = []
    $('.layout').each(function(){
       positions.push(parseInt($(this).offset().top));
    })
    console.log(positions)
    var count=-1
    var x=positions.length-1    
    $(window).keydown(function (event) {
        switch (event.keyCode) {
        case 38:
            if(count>=x*(-1)&&count!==0){   
                count--
                console.log(count)
                $('#page').stop().animate({scrollTop:positions[count]},700);
                }else{event.preventDefault()}

            break;

        case 40:
            if(count<=x){
                count++
                console.log(count)
                $('#page').stop().animate({scrollTop:positions[count]},700);
                }else{event.preventDefault()}

            break;
        }
     });
});
$(函数(){
变量位置=[]
$('.layout')。每个(函数(){
positions.push(parseInt($(this.offset().top));
})
控制台日志(位置)
变量计数=-1
变量x=位置。长度-1
$(窗口).keydown(函数(事件){
开关(event.keyCode){
案例38:
如果(计数>=x*(-1)&&count!==0){
计数--
console.log(计数)
$('#page').stop().animate({scrollTop:positions[count]},700);
}else{event.preventDefault()}
打破
案例40:
如果(计数您初始化

var count=-1
宁可

var count=0

谢谢!非常完美。你知道如何在每个“.layout”上方设置页面10px(或其他维度)的位置吗?将第4行更改为
位置。按(parseInt($(this.offset().top)-10);
非常感谢,非常完美