JavaScript 阻止滚动

标签 javascript html scroll

当我在 HTML5 游戏中使用箭头键时,我试图阻止滚动。这是一个迷宫游戏,您可以使用屏幕上的箭头键或按钮进行控制,但每当我按“向上”或“向下”键时,它总是滚动。我正在使用:

document.addEventListener('keydown', function(e){
    if(e.keyCode === 40) {
        down();
    } else if(e.keyCode === 38) {
        up();
    } else if(e.keyCode === 37) {
        leftclick();
    } else if(e.keyCode === 39) {
        rightclick();
    }
})

这可以用 JavaScript 实现吗?我希望它能够用鼠标滚动,但当我使用键盘上的箭头键时则不行。我的游戏地址为http://thomaswd.com/maze 。请帮忙。谢谢!

最佳答案

使用e.preventDefault()阻止正常的关键操作发生。

document.addEventListener('keydown', function(e){
    if(e.keyCode === 40) {
        down();
        e.preventDefault();
    } else if(e.keyCode === 38) {
        up();
        e.preventDefault();
    } else if(e.keyCode === 37) {
        leftclick();
        e.preventDefault();
    } else if(e.keyCode === 39) {
        rightclick();
        e.preventDefault();
    }

})

关于JavaScript 阻止滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14901273/

相关文章:

android - Appbar 在 Android 设计库 22.2.1 与 22.2.0 中滚动

jQuery.focus() 进行不必要的滚动

javascript - 关于构造函数和 __proto__ 属性的澄清

javascript - Angular 2 和组件树

javascript - 要在输入键上将焦点设置在锚定标签上

java - 当我在电子邮件客户端中设置阻止 HTML 电子邮件时会发生什么

html - 如何为 x 和复选标记等 HTML 符号着色?

jquery - 如何使用jquery使页面显示滚动效果

javascript - 过滤文件夹中的文件并使用 ng-repeat 显示它们(JS,Angular)

javascript - 使用 angular-js 呈现 unicode-utf-8 土耳其语字符