700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【longPressKey】长按键盘任意键(或组合键)3秒触发自定义事件(以Pause/Break键为例)

【longPressKey】长按键盘任意键(或组合键)3秒触发自定义事件(以Pause/Break键为例)

时间:2021-04-11 05:04:36

相关推荐

【longPressKey】长按键盘任意键(或组合键)3秒触发自定义事件(以Pause/Break键为例)

<!doctype html><html lang="en"><head><meta charset="UTF-8"></head><body></body><script>let longPressKey = {timeout: null,trigger(pressedEndCallback, //长按结束触发方法pressedStartCallback, //按下触发方法pressedUpCallback, //弹起触发方法keyCode = 19, //长按什么键delaySecond = 3 //长按多少秒触发) {onkeydown = (e) => {let k = e.keyCode || e.which || e.charCode,ck = e.ctrlKey || e.metaKey,ak = e.altKey,sk = e.shiftKey;if (k === keyCode) {if (!this.timeout) {pressedStartCallback && pressedStartCallback(e);this.timeout = setTimeout(() => {this.timeout = null;pressedEndCallback && pressedEndCallback(e);}, 1000 * delaySecond);}}};onkeyup = (e) => {clearTimeout(this.timeout);this.timeout = null;pressedUpCallback && pressedUpCallback(e);};},};//测试用例----------------------------------------let versionTime = '2月6日 17:43:12';longPressKey.trigger((e) => {// 长按超时执行alert(`【更新时间】${versionTime}\n(注意校对是否已发布最新代码)`);},(e) => {// 刚刚按下键console.log("按键对象",e);},(e) => {// 弹起console.log("弹起键对象",e);},19,3);</script></html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。