学习笔记 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 事件