学习笔记 2020-11-18
JavaScript 高级程序设计(第4版) 阅读记录
事件
事件类型
鼠标和滚轮事件
相关元素
event.relatedTarget,mouseover 时,主要目标是获得光标的元素,相关元素是失去光标的元素,mouseout 类似。
IE8 及更早版本提供 fromElement 和 toElement 来替代。
鼠标按键
event.button
- 0 主键
 - 1 中键
 - 2 副键
 
IE8 及更早版本:
- 0 没有按下任何键
 - 1 主键
 - 2 副键
 - 3 同时主键、副键
 - 4 中键
 - 5 同时主键、中键
 - 6 同时副键、中键
 - 7 同时 3 个键
 
额外事件信息
event.detail
- 鼠标事件中,值为给定位置发生单击的次数。
 
IE 还提供了:
- altLeft,是否按下,下同。
 - ctrlLeft
 - offsetX,光标相对于目标元素边界的 X 坐标。
 - offsetY
 - shiftLeft
 
mousewheel 事件
该事件在任何元素上触发,并冒泡到 document ( IE8 ) 和 window 。
event.wheelDelta
触摸屏设备
- 不支持 dbclick。
 - 单指点击可点击元素触发 mousemove。如果屏幕没有变化,相继触发 mousedown、mouseup 和 click 事件。
 - mousemove 也会触发 mouseover 和 mouseout。
 - 双指点触并滑动会触发 mousewheel 和 scroll 。
 
无障碍问题
键盘与输入事件
- keydown,按下触发,持续按住重复触发。
 - keypress,同样重复触发。
 - keyup
 - textInput,在文本被插入到文本框之前触发。
 
触发顺序:keydown -> keypress -> keyup
键码
event.keyCode
字符编码
event.charCode,只会在 keypress 事件被设置。
DOM3 的变化
- event.key || event.keyIdentifier
 - event.char
 - event.location
- 0 默认
 - 1 左边
 - 2 右边
 - 3 数字键盘
 - 4 移动设备
 - 5 游戏手柄
 
 - event.getModifierState()
 
textInput 事件
- event.data
 - event.inputMethod
 
设备上的键盘事件
合成事件
- compositionstart
 - compositionupdate
 - compositionend
 
变化事件
HTML5 事件
- contextmenu 事件
 - beforeunload 事件