Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 防止firefox用户能够滚动_Html_Css - Fatal编程技术网

Html 防止firefox用户能够滚动

Html 防止firefox用户能够滚动,html,css,Html,Css,我注意到,当我使用“overflow-x:hidden”隐藏水平滚动条并防止手动滚动时,我仍然可以在Mozilla Firefox中使用箭头键滚动(这可能也发生在鼠标滚轮上,但我没有鼠标滚轮来测试) 在Google chrome中,隐藏滚动条确实会阻止滚动,这是我想要的行为,因为我想完全用javascript控制水平滚动 如何防止用户控制所有浏览器的滚动 下面是一个JSFIDLE示例: 我不希望用户能够在小提琴中左右滚动。溢出:隐藏只隐藏滚动条。向下/向上翻页、箭头键和鼠标滚轮仍能工作。请参阅

我注意到,当我使用“overflow-x:hidden”隐藏水平滚动条并防止手动滚动时,我仍然可以在Mozilla Firefox中使用箭头键滚动(这可能也发生在鼠标滚轮上,但我没有鼠标滚轮来测试)

在Google chrome中,隐藏滚动条确实会阻止滚动,这是我想要的行为,因为我想完全用javascript控制水平滚动

如何防止用户控制所有浏览器的滚动

下面是一个JSFIDLE示例:


我不希望用户能够在小提琴中左右滚动。

溢出:隐藏只隐藏滚动条。向下/向上翻页、箭头键和鼠标滚轮仍能工作。请参阅有关如何禁用堆栈溢出的问题。

您可以通过使用Javascript覆盖箭头键的默认功能来解决此问题

我添加了一个简单的JQuery函数,应该在站点/页面加载周期的“末尾”调用它(例如,在脚本标记中,如)


$(“html”).keydown(函数(事件){
开关(event.keyCode){
案例32://空间
案例33://pgup
案例34://pgdn
案例35://结束
案例36://家庭
案例37://左
案例38://以上
案例39://对
案例40://向下
返回false;
}
});

请将一个JSFIDLE放在一起演示问题。可能重复您为什么要这样做?我想这样做,以便可以使用javascript控制滚动。这有助于解决问题,但它不能回答为什么在Mozilla中会发生这种情况,而在Chrome中却不会。我希望对系统和解决方案有更深入的了解。隐藏滚动条也不会阻止在平板电脑和其他触摸屏设备上滚动。这不会阻止其他滚动方法,如鼠标滚轮和其他特定于驱动程序的实现。此外,覆盖普通键盘命令的功能只是一种糟糕的体验。如果用户被禁用并且只能使用键盘导航怎么办?那真的太糟糕了,但我不明白为什么其他方法不应该“阻止”禁用的用户?
body{
    overflow-x: hidden;
}
<script type="text/javascript">
$("html").keydown(function(event) {
    switch(event.keyCode) {
        case 32://space
        case 33://pgup
        case 34://pgdn
        case 35://end
        case 36://home
        case 37://left
        case 38://up
        case 39://right
        case 40://down
        return false;
    }
});
</script>