事件
事件介绍
事件概述 : 用户在浏览器上触发一个操作, 浏览器上会指向相关的函数处理, 这个称之为事件
事件触发 : 用户在页面上操作(如点击按钮, 鼠标滑过, 鼠标点击, 鼠标松开, 文本框获得焦点, 失去焦点等), 就是事件触发
事件模式 --- JavaScript有两种实现模式
内联模式
直接在HTML标签中添加事件. 这种模型是最传统简单的一种处理事件的方法
但是这种模式中事件和HTML是混写的, 并没有将JS与HTML分离, 当代码量多了以后,对后期代码维护和扩展很不利.
例如 : <input type="button" value="按钮" onclick="alert('hello');" />
注意 : 内联模式调用的函数不能放到window.onload里面, 否则会找不到该函数.
脚本模式
脚本模式能将JS代码和HTML代码分离, 符合代码规范.
使用脚本模式我们需要先获取到元素节点对象, 再针对该节点对象添加事件; 如我们可以采用三种方式来获得节点对象:
- getElementById(),
- getElementsByTagName(),
- getElementsByName()
事件的划分
事件的执行者 --- 元素
事件名 --- on开头+对应的名字
事件处理函数 --- function
//执行者 事件名
document.onclick = function(){
//处理函数
}
事件分类
鼠标事件 (mouse)
- 点击的事件 : onclick / ondblcick / onmousedown / onmouseup /
- 移进 : onmouseenter / onmouseover (子元素也会触发)
- 移出 : mouseout (子元素也会触发) / mouseleave
- 移动 : mousemove
键盘事件 (key)
- onkeydown --- 键盘按下
- onkeyup --- 键盘弹起
- onkeypress --- 字符键才触发 按下
系统事件
- HTML事件
- load 加载事件
- unloa 卸载
- select 选择
- change 修改
- blur 失去焦点
- focus 获取焦点
- input 输入内容
- scroll 滚动
- submit 提交
- reset 重置
event中的属性
位置属性
- offsetX ---- 以鼠标离当前元素的X距离
- offsetY ---- 鼠标离当前元素的Y距离
- clientX ---- 鼠标离网页最左的距离(不包含不可见部分)
- clientY ---- 鼠标离网页最顶部的距离(不包含不可见部分)
- pageX ---- 鼠标离网页最左的距离(包含不可见部分)
- pageY ---- 鼠标离网页最顶部的距离(包含不可见部分)
- screenX ---- 鼠标离屏幕最左部的距离
- screenY ---- 鼠标离屏幕最顶部的距离
按键属性 ---- 三个按键是否按下 (长按) --- 先按下再操作
- ctrlKey ---- console.log(e.ctrlKey) --- 是否按下Ctrl
- shiftKey ---- console.log(e.shiftKey) --- 是否按下shift
- altKey ---- console.log(e.altKey) --- 是否按下alt
- button ---- 左键为0, 中间为1, 右键为2
- console.log(e.button ) --- 点击是鼠标的哪个键
- type
- target ---- 目标对象
- console.log(e.target ) --- div这个元素, 当前触发的对象
- console.log(e.currentTarget ) --- 当前加事件的对象
键盘的输入相关属性
key获取对应的按下的键
keyCode获取按下的键的ASCII码
charCode 获取keypress事件中按键的ASCII码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构