我有一个问题,我什至不知道要搜索什么才能解决。当我按空格键时,整个页面向上移动(向下滚动):我不希望发生这种情况。我的body
标签的样式为overflow:hidden
,如果这与它有任何关系,那么页面将不会有任何滚动条。我通常非常擅长执行初步的故障排除技术,但在这种情况下我什至不知道从哪里开始。我怎样才能阻止这种行为?
附加信息:我正在使用 jQuery 1.4.2
这种默认的滚动行为来自keydown event https://developer.mozilla.org/en-US/docs/Web/API/Element/keydown_event。为了防止这种情况发生,您必须处理keydown
事件并阻止默认行为,或者通过返回false
从事件处理程序或调用event.preventDefault()
.
根据经验,在防止空格键滚动等默认行为之前请仔细考虑。我一直在使用它,当它在页面中不起作用时我会非常恼火。
但如果你想吃钥匙...
window.onkeydown = function(e) {
return e.keyCode !== 32;
};
根据MDN 网络文档KeyboardEvent#keyCode https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode, keyCode
是一个已弃用的属性。尽管它在大多数浏览器中仍然有效,但我们鼓励您使用KeyboardEvent#key https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key展望未来,这是密钥的更标准化的字符串表示形式。这key
空格键的值实际上是输入值:" "
(单个空格字符串)。因此,如果您想非常小心地支持所有浏览器,您可以编写:
window.onkeydown = function(e) {
return ev.keyCode !== 32 && ev.key !== " ";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)