我可以禁用Chrome / Safari中的滚动但是将溢出隐藏在body标签上,但是在Firefox上这只隐藏了滚动条,我仍然可以使用箭头键滚动。这是为什么?
此外,我正在使用jQuery动画向下滑动到我页面上的特定区域。使用FF我必须为html标签设置动画,但使用Chrome / Safari它只是我需要动画的主体。尚未在IE中测试过,但我期待这是一个令人厌恶的事情:D。
那么为什么我可以在Chrome上禁用滚动身体但不禁用FF?
注意:哦,我已经尝试在FF的html标签上设置隐藏溢出但这只是让它跳到顶部(隐藏在主体上的溢出对两个浏览器都可以正常工作)。
答案 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);
});