事件
事件通常与函数配合使用,这样就可以通过发生的事件来驱动函数执行。
注意:事件名称大小写敏感。若是事件监听方式,则在事件名的前面取消on。
1. 鼠标事件
| 鼠标事件 | 触发条件 |
| onclick | 鼠标点击左键触发 |
| oncontextmenu | 鼠标点击右键触发 |
| ondblclick | 鼠标双击触发 |
| onmouseover | 鼠标经过触发 |
| onmouseout | 鼠标离开触发 |
| onfocus | 获得鼠标焦点触发 |
| onblur | 失去鼠标焦点触发 |
| onmousemove | 鼠标移动触发 |
| onmouseup | 鼠标弹起触发 |
| onmousedown | 鼠标按下触发 |
给btn按钮添加点击事件,点击弹出 你好!
let btn = document.querySelector('button')
btn.onclick = function() {
alert('你好!')
}
2. 键盘事件
| 键盘事件 | 触发条件 |
| onkeyup | 某个键盘按键被松开时触发 |
| onkeydown | 某个键盘按键被按下时触发 |
| onkeypress | 某个键盘按键被按下时触发 不识别功能键 比如 ctrl 等 |
键盘按键被松开时触发,弹出 你好 !
window.onkeyup = function() {
alert('你好!')
3. 触摸事件
| 触摸touch事件 | 说明 |
| touchstart | 手指触摸到一个 DOM 元素时触发 |
| touchmove | 手指在一个 DOM 元素上滑动时触发 |
| touchend | 手指从一个 DOM 元素上移开时触发 |
手指触摸盒子触发
let div = document.querySelector('div')
div.ontouchstart = function() {
alert('您触摸了盒子')
}
4. 表单事件
| 表单事件 | 触发条件 |
| onfocus | 表单获得焦点触发 |
| onblur | 表单失去焦点触发 |
| oninput | 表单每次输入触发 |
| onchange | 表单内容发生改变时触发 |
| onselect | 表单文本被选取时触发 |
| onreset | 表单重置时触发 |
| onsubmit | 表单提交时触发 |
将表单内每次输入的内容打印到控制台
let input = document.querySelector('input')
input.oninput = function() {
console.log(this.value);
}
5. 过渡事件
| 过渡事件 | 触发条件 |
| ontransitionend | 在过渡完成时触发 |
6. 动画事件
| 动画事件 | 触发条件 |
|---|
| onanimationend | 在动画结束播放时触发 |
| onanimationiteration | 在动画重复播放时触发 |
| onanimationstart | 在动画开始播放时触发 |
事件对象
1. 事件对象
| 事件对象属性方法 | 说明 |
|---|
| e.target | 返回触发事件的对象 |
| e.type | 返回事件的类型 比如click mouseover 不带on |
| e.preventDefault() | 该方法阻止默认事件 比如禁止页面右键 |
| e.stopPropagation() | 阻止事件冒泡 |
点击按钮后打印出触发事件的对象
let btn = document.querySelector('button')
btn.onclick = function(e) {
console.log(e.target);
}
2. 鼠标事件对象
| 鼠标事件对象 | 说明 |
|---|
| e.clientX | 返回鼠标相对于浏览器窗口可视区的 X 坐标 |
| e.clientY | 返回鼠标相对于浏览器窗口可视区的 Y 坐标 |
| e.pageX | 返回鼠标相对于文档页面的 X 坐标 IE9+支持 |
| e.pageY | 返回鼠标相对于文档页面的 Y 坐标 IE9+支持 |
| e.screenX | 返回鼠标相对于电脑屏幕的 X 坐标 |
| e.screenY | 返回鼠标相对于电脑屏幕的 Y 坐标 |
3. 键盘事件对象
| 键盘事件对象 | 说明 |
|---|
| e.key | 返回用户按下的物理按键的值 |
在页面按下 A 键后,弹出按下的物理按键的值
window.addEventListener('keyup', function(e) {
alert(e.key)
})