KeyPress水平导航

时间:2015-10-10 13:05:42

标签: javascript jquery html css

我正在尝试使用左/右箭头在我的网页上水平导航。

由于Firefox / Chrome以不同的方式处理默认箭头移动,我必须禁用默认移动(Firefox会将其向右移动20px)。

<script>
 window.addEventListener("keydown", function(e) {
// space and arrow keys
    if([32, 37, 38, 39, 40].indexOf(e.keyCode) > -1) {
        e.preventDefault();
     }
}, false);  
</script>

然后我获得了一个Keydown功能,可以在按键上向左/向右移动1980px。 (由于阻止默认移动,我不能让按键工作)

<script>
    $(window).keydown(function (e) {
    var currentx = 0;
    var viewport = 1920;
    var btnright = (+currentx) + (+viewport);
    var btnleft = (+currentx) - (-viewport);

if ( e.which == 37 ) {
    window.scrollTo(btnleft, 0);
    currentx = (+currentx) - (-viewport);
} else if ( e.which == 39 ) {
    window.scrollTo(btnright, 0);
    currentx = (+currentx) + (+viewport);
}
});
</script>

我希望它能够重复出现(页面宽度为6000px),但我希望一次移动1个面板(1980px)(每次移动后更新$ Current)。最后,我可以通过箭头浏览整个页面。

我的问题是我不能让事件多次触发,我只能从0到1980导航。它不会再进一步​​了。有没有解决这个问题?

由于

1 个答案:

答案 0 :(得分:1)

正如@CBroe所述,每次触发事件时,您的-filter-view-dags=<bb-name>变量都会设置为currentx。尝试将0变量声明移出事件处理程序,如下所示:

currentx