在我的网络应用程序中,我使用 onkeydown 事件来捕获击键。
例如,我捕获“j”键来动画向下滚动页面(并同时执行一些其他操作)。
我的问题是用户可能会按住“j”键以进一步向下滚动页面(这相当于快速多次击键)。
在我的应用程序中,这会导致一系列看起来不太好的动画。
我如何知道按键何时被释放,并知道我应该捕获的按键数量?这样我就可以运行一个长动画而不是多个短动画。
最佳答案
构建于 @JMD :
var animate = false; function startanimation() { animate = true; runanimation(); } function stopanimation() { animate = false; } function runanimation() { if ( animation_over ) { if ( !animate ) { return; } return startanimation(); } // animation code var timeout = 25; setTimeout(function(){runanimation();},timeout); } document.onkeydown = startanimation; document.onkeyup = stopanimation;
但是,您需要为开始/结束动画添加一些检查。
编辑:在JS中添加了return
;会无限递归。
关于javascript - 捕获多个 "onkeydown"并等待 "onkeyup"执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/543854/