Javascript 事件dom(二) 键盘事件

事件对象

Event对象用于描述在浏览器窗口中发生的事件,一旦事件发生,便会生成event对象。

ie8及以下版本中,当事件函数被触发,可以通过window.event访问event对象;而其他浏览器把event对象作为参数传递给事件函数。

浏览器兼容写法如下:

function handleEvent(evt){
  var myEvent = window.event ? Window.event : evt;
}

 

键盘响应事件

触发的事件顺序为keydown(键已按下)、keyup(键已弹起)、keypress(键按下并释放)

这里其实应该把keydown、keyup与keypress当做两种分类情形来使用。

①:keydown、keyup可以捕获组合键,keypress只能捕获单个字符。

②:keydown、keyup可以捕获除printScreen之外的所有按键;keypress主要用来接收字母、数字等ANSI字符。

③:keydown、keyup不能判断键值字母的大小;keypress不显示键盘的物理状态,而是只传递一个字符,会区分大小写。

④:keydown、keyup区分数字小键盘与主键盘的数字字符,而keypress不区分。


获取按键:

获取按键代码 evt.keyCode

获取按键字符 String,fromCharCode(evt.keyCode)

alt是否按中状态 evt.altKey

ctrl是否按中状态 evt.ctrlKey

shift 是否按中状态 evt.shiftKey

 

以下为按下enter键的操作

function enterOperate(evt){
  if(evt.keyCode == 13){
    alert("按下enter键");
  }
}
document.body.addEventListener("keydown", enterOperate);

 

组合按键操作:

以下为组合按键

function combinationKey(evt){
  if( evt.shiftKey && evt.keyCode == 73){
    alert(“触发了shift + i组合键”);
  }
}

由于浏览器也定义了一些组合键操作,为了避免冲突,建议使用shift为组合键而不是ctrl键。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值