我是新的DOM操作,在这里我试图改变颜色的最小方块使用箭头键。我能够使用点击事件访问相同的内容。
<body>
<div class="container">
<div class="main-box" id="main-box">
<div class="moving-box" id="moving-box">
</div>
</div>
</div>
<script src="script.js"></script>
</body>
const box = document.getElementById("moving-box");
const mainBox = document.getElementById("main-box");
box.addEventListener("keypress", function (event) {
if (event.keyCode === 38) {
box.style.backgroundColor = red;
}
})
2条答案
按热度按时间pvabu6sv1#
键盘箭头没有
keypress
事件,因为当按下产生字符值的键时,将激发keypress事件。
https://developer.mozilla.org/en-US/docs/Web/API/Element/keypress_event
所以我们可能应该使用
keydown
,你也不清楚你是否想在执行事件处理程序时聚焦框。如果是焦点,则需要tabindex="0"
,以便框可以接收焦点。否则,将事件侦听器添加到document.body
。还请注意,键盘键可以滚动页面。所以你应该调用
event.preventDefault()
来停止它。2guxujil2#
我认为问题是event.keyCode已被弃用,你应该尝试event.key(ArrowRight,ArrowLeft,ArrowUp,ArrowDown)
更多信息:https://www.w3schools.com/jsref/event_key_key.asp