JS 监听键盘上某个键的长按事件。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 监听键盘上某个键的长按事件。相关的知识,希望对你有一定的参考价值。
现在想实现这样一个功能: 在一个<select>标签里面有多个选项,然后按键盘上的上下键可以切换选中值,这个只能有onkeyup或者onkeydown这两个事件,这个只能按一下切换一下,长按的时候是不动的。 怎么样才能实现长按的时候切换下拉列表的值。偶还是小白,向各位大虾们求助。 在此先谢过了。
参考技术A window对象有两个方法来实现定时功能,即window.setTimeout()
,用来在制定时间后运行
window.setInterval()
,用来指定每隔一段时间重复运行
以及window.clearInterval()用来清除定时
用按钮的
onmousedown
,
onmouseup
,
onclick
事件组合来实现以下功能
代码如下
<script>
var
plusview;
var
minusview;
var
a=0;
function
hello()
document.getElementById("resultspan").innerhtml="5秒钟后显示我!!!长案按钮显示效果";
window.setTimeout("hello()",5000);
function
viewpluslong()
plusview=window.setInterval("viewplus()",100);
function
stopplus()
window.clearInterval(plusview);
function
viewminuslong()
minusview=window.setInterval("viewminus()",100);
function
stopminus()
window.clearInterval(minusview);
function
viewplus()
a=a+1;
document.getElementById("resultspan").innerHTML=a.toString();
function
viewminus()
a=a-1;
document.getElementById("resultspan").innerHTML=a.toString();
</script>
<html>
<input
id="buttondown"
type="button"
value="<<
-减
"
onclick="viewminus();"
onmousedown="viewminuslong();"
onmouseup="stopminus();"
/>
<input
id="buttonup"
type="button"
value="加
+
>>"
onclick="viewplus();"
onmousedown="viewpluslong();"
onmouseup="stopplus();"
/>
(按住按钮不放可连续缩放)
</br>
result
is
:
<span
id="resultspan"
style="color:red;"></span>
</html>
JS监听键盘两个组合键的触发
*键盘事件的回调是document.onkeydown函数, 该函数会传入一个Event类型的参数
document.onkeydown = function(e) { //编写事件触发时候的回调函数 }
*Evnet事件的具体内容请见W3C文档, 样子是这样的:
具体的网址:
http://www.w3school.com.cn/jsref/dom_obj_event.asp
*实例应用
需求:当按下Ctrl+Enter键时触发saveComment方法
代码为:
document.onkeydown = function(e) { //console.log(e.ctrlKey); if (13 == e.keyCode && e.ctrlKey) { //console.log(c1); saveComment(); } }
分析:当ctrl按下时候, 方法被触发, 不松开ctrl键, 按下enter键, 方法再次被触发.
猜想:1)e的内部实现必然有一个数组用来存储按键的id, 也就是说哪怕有10个按钮同时按下, 也能同时识别.
同时, 将每个按钮的对象的属性中有一个是否按下的属性, 如果按下就是true.
2)同时, 按下ctrl后再按下enter不是简单的再次调用onkeydown函数, 而是保存了上一次onkeydown还没有完成的事件(ctrl键按下).
具体的实际应用请看我的这篇文章:
欢迎评论, 指导.
以上是关于JS 监听键盘上某个键的长按事件。的主要内容,如果未能解决你的问题,请参考以下文章