在点击Keydown时禁用Nintendo 3DS滚动功能

时间:2013-04-13 03:18:43

标签: javascript jquery css dom scroll

我一直在尝试在Nintendo 3DS游戏系统的网络浏览器中运行的网页中构建一个可移动的div。基本上,当我使用+ Control Pad(与常规键盘的箭头键的键码相对应)时,div会在页面周围滑动。不幸的是,由于我的页面大小要求太大而无法直接放入3DS视口,因此浏览器会自动滚动,而不是我的div可以移动到视图中。我提出了使用overflow: hidden;position: fixed;

的各种技巧
    $(document).keydown(function(event){
        event.preventDefault();
        //call my function to move the div around
    });

3DS浏览器实际上并没有使用传统的“滚动条”;无论如何它只是滚动。它的position: fixed;支持非常糟糕。

有没有人对如何阻止页面滚动但是允许div移动(并在div到达视口边缘时滚动一点以显示更多页面)有任何建议?

这是我在stackOverflow上的第一篇文章。谢谢你的任何想法!!!

编辑:您可以在此处查看代码:Cloud9 IDE link并在此处执行:DEMO link

1 个答案:

答案 0 :(得分:0)

是的,我对所有移动设备都有这个问题 处理固定在移动设备上的位置的最佳方法是从页面中完全删除滚动功能并使用JavaScript进行模拟,然后更改新滚动事件的位置。
而且,你可以创建一个不可移动的页面并只滚动你需要的部分,所以你的元素根本不会移动。

html,body {
    overflow: hidden
}

#divID {
    overflow: auto; // if you want just vertical scroll overflow-y: auto;
}