扫码关注官方订阅号
认证0级讲师
谢邀。这个问题实际上问的是如何在长按一个按键的时候只触发一次keydown事件。处理方法:添加一个状态位变量,判断是否当前是否已经处于按下的状态。也就是在你的代码中做如下修改:
keydown
var keyDownFlag = 0;//定义一个全局变量,该变量表示是否已经按下 function keydownHandler(e){ if(e.keyCode==32&&keyDownFlag==0){//判断条件增加当前是否已经按下(是否处于长按) ballY-=dy keyDownFlag =1 //按下的时候修改状态 } } //空格键松开时ball掉下 function keyupHandler(e){ if(e.keyCode==32){ ballY+=dy; keyDownFlag =0//松开的时候修改状态 } }
function keydownHandler(e){
clearTimeout;
}//空格键松开时ball掉下function keyupHandler(e){
if(e.keyCode==32){ ballY-=dy; setTimeout( function(){ ballY+=dy; },300); }
}
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
谢邀。
这个问题实际上问的是如何在长按一个按键的时候只触发一次
keydown事件。处理方法:添加一个状态位变量,判断是否当前是否已经处于按下的状态。也就是在你的代码中做如下修改:
function keydownHandler(e){
}
//空格键松开时ball掉下
function keyupHandler(e){
}