设置溢出:隐藏到body / html隐藏滚动条但不禁用Firefox中的滚动

时间:2011-05-28 22:59:46

标签: javascript jquery css dom scroll

我可以禁用Chrome / Safari中的滚动但是将溢出隐藏在body标签上,但是在Firefox上这只隐藏了滚动条,我仍然可以使用箭头键滚动。这是为什么?

此外,我正在使用jQuery动画向下滑动到我页面上的特定区域。使用FF我必须为html标签设置动画,但使用Chrome / Safari它只是我需要动画的主体。尚未在IE中测试过,但我期待这是一个令人厌恶的事情:D。

那么为什么我可以在Chrome上禁用滚动身体但不禁用FF?

注意:哦,我已经尝试在FF的html标签上设置隐藏溢出但这只是让它跳到顶部(隐藏在主体上的溢出对两个浏览器都可以正常工作)。

4 个答案:

答案 0 :(得分:4)

您可以将身体的位置设置为“固定”

答案 1 :(得分:2)

我能够通过在keydown元素上绑定html事件的jQuery侦听器并返回false来在Firefox中实现此目的。

// Disable Scrolling by keys
$("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;
    }
});

我尝试了jQuery的event.preventDefault()event.stopImmediatePropogation()无效。

答案 2 :(得分:0)

如果它滚动的唯一方法是用箭头键,你可能只是在按键时返回false以防止这种情况。

答案 3 :(得分:0)

如果使用keydown函数然后textarea使用键滚动不起作用...所以我已完成下面的代码。用firefox滚动问题解决了我的问题。

$(window).scroll(function () { 
  window.scrollTo(0,0);
});
相关问题