【longPressKey】长按键盘任意键(或组合键)3秒触发自定义事件(以Pause/Break键为例)
生活随笔
收集整理的這篇文章主要介紹了
【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 = '2022年2月6日 17:43:12';
longPressKey.trigger(
(e) => {// 長按超時執行alert(`【更新時間】${versionTime}\n(注意校對是否已發布最新代碼)`);
},
(e) => {// 剛剛按下鍵console.log("按鍵對象",e);
},
(e) => {// 彈起console.log("彈起鍵對象",e);
},
19,
3
);</script>
</html>
總結
以上是生活随笔為你收集整理的【longPressKey】长按键盘任意键(或组合键)3秒触发自定义事件(以Pause/Break键为例)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【非专业评测】发蜡、发膏、发泥、发油、啫
- 下一篇: 实现计时、时钟,实时获取当前年月日时分秒