我正在尝试使用左/右箭头在我的网页上水平导航。
由于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导航。它不会再进一步了。有没有解决这个问题?
由于
答案 0 :(得分:1)
正如@CBroe所述,每次触发事件时,您的-filter-view-dags=<bb-name>
变量都会设置为currentx
。尝试将0
变量声明移出事件处理程序,如下所示:
currentx