【JS】事件汇总(方便查找)

news2024/9/28 13:19:36

文章目录

    • 一、鼠标事件
    • 二、键盘事件
      • 2.1、按下键盘键(keydown)
      • 2.2、抬起键盘键(keyup)
      • 2.3、按下有效键(keypress)
      • 2.4、常见键盘码(了解)
    • 三、焦点事件
      • 3.1、聚焦(focus)
      • 3.2、失焦(blur)
      • 3.3、扩展(focusin、focusout)
    • 四、加载事件
      • 4.1、加载完成(onload)
      • 4.2、加载失败(onerror)
      • 4.3、窗口变化(onresize)

一、鼠标事件

点击事件描述(指鼠标左键)
click鼠标点击事件
dblclick鼠标双击事件
mousedown鼠标按下事件
mouseup鼠标抬起事件
鼠标点击事件触发顺序是:
1. mousedown 首先触发	2. mouseup 接着触发 
3. click 之后触发 		4. dblclick 最后触发
移动事件描述
mousemove当鼠标在一个节点内部移动时触发
mouseout鼠标离开一个节点时触发,离开父节点也会触发这个事件
mouseover鼠标进入一个节点时触发,进入子节点会再一次触发这个事件
mouseleave鼠标离开一个节点时触发,离开父节点不会触发这个事件
mouseenter鼠标进入一个节点时触发,进入子节点不会触发这个事件
其他事件描述
contextmenu按下鼠标右键时(上下文菜单出现前)触发
wheel滚动鼠标的滚轮时触发,该事件继承的是WheelEvent接口

二、键盘事件

事件描述
keydown键盘按下事件
keypress按下有值的键时触发,即按下 Ctrl、Alt、Shift、Meta 这样无值的键,这个事件不会触发
keyup键盘抬起事件
鼠标点击事件触发顺序是:
1. keydown 首先触发	2. keypress 接着触发  3. keyup 最后触发

2.1、按下键盘键(keydown)

  • keydown:事件触发于键盘按键按下的时候。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<input id="input" type="text">
	</body>
	<script>
		const input = document.getElementById("input");
		input.addEventListener(
			"keydown",
			(event) => {
				console.log(event.code)
			},
			true,
		);
	</script>
	</head>
</html>

在这里插入图片描述

2.2、抬起键盘键(keyup)

  • keyup:事件触发于键盘按键抬起的时候。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<input id="input" type="text">
	</body>
	<script>
		const input = document.getElementById("input");
		input.addEventListener(
			"keyup",
			(event) => {
				console.log(event.code)
			},
			true,
		);
	</script>
	</head>
</html>

在这里插入图片描述

2.3、按下有效键(keypress)

已弃用: 不再推荐使用该特性。虽然一些浏览器仍然支持它,但也许已从相关的 web 标准中移除,也许正准备移除或出于兼容性而保留。请尽量不要使用该特性,并更新现有的代码;

  • 当按下产生字符或符号值的键时,将触发 keypress 事件。

    1. 产生字符值的键包括字母、数字和标点符号键。
    2. 不产生字符值的键是修饰键,例如 Alt、Shift、Ctrl 或 Meta 键。

2.4、常见键盘码(了解)

function showChar(e) {
  console.log('当前按下的键是: ' + e.code);
}
document.body.addEventListener('keydown', showChar, false);
按键按键码
数字键0 - 9Digit0 - Digit9
字母键A - zKeyA - KeyZ(不区分大小写)
功能键F1 - F12F1 - F12
方向键ArrowDown、ArrowUp、ArrowLeft、ArrowRight
Alt 键AltLeft 或 AltRight
Shift 键ShiftLeft 或 ShiftRight
Ctrl 键ControlLeft或ControlRight
删除键Delete
制表符Tab
回车键Enter
空格键Space
Esc 键Escape

三、焦点事件

焦点事件发生在元素节点和document对象上面,与获得或失去焦点相关。它主要包括以下四个事件。

事件描述是否冒泡
focus元素节点获得焦点后触发
blur元素节点失去焦点后触发
focusin元素节点将要获得焦点时触发,发生在focus事件之前
focusout元素节点将要失去焦点时触发,发生在blur事件之前
  • 由于focusblur事件不会冒泡,只能在捕获阶段触发,所以addEventListener方法的第三个参数需要设为true
const form = document.getElementById("form");
form.addEventListener('focus', function (event) {
  event.target.style.background = 'pink';
}, true);

form.addEventListener('blur', function (event) {
  event.target.style.background = '';
}, true);

3.1、聚焦(focus)

  • focus 事件:在元素获取焦点时触发。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<form id="form">
			<input type="text" placeholder="text input" />
			<input type="password" placeholder="password" />
		</form>
	</body>
	<script>
		const form = document.getElementById("form");

		form.addEventListener(
			"focus",
			(event) => {
				event.target.style.background = "pink";
			},
			true,
		);
	</script>
	</head>
</html>

在这里插入图片描述

3.2、失焦(blur)

  • blur 事件:当一个元素失去焦点的时候 blur 事件被触发
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<form id="form">
			<input type="text" placeholder="text input" />
			<input type="password" placeholder="password" />
		</form>
	</body>
	<script>
		const form = document.getElementById("form");

		form.addEventListener(
			"blur",
			(event) => {
				event.target.style.background = "green";
			},
			true,
		);
	</script>
	</head>
</html>

在这里插入图片描述

3.3、扩展(focusin、focusout)

  • 当元素即将获取焦点时,focusin 事件被触发。focusin 事件和 focus 事件之间的主要区别在于后者不会冒泡。
  • 当元素即将失去焦点时,focusout 事件被触发。focusout 事件和 blur 事件之间的主要区别在于后者不会冒泡。

四、加载事件

4.1、加载完成(onload)

  • load事件在页面或某个资源加载成功时触发。
  • 注意,页面或资源从浏览器缓存加载,并不会触发load事件。
  • 在 html 页面中把 js 写在 head 里面
<html>
  <head>
    <meta charset="UTF-8" />
    <script>
    	// 这个代码执行的时候,body 还没有加载
      // 这个时候我们就获取不到 body 中的那个 div
      
      // 就需要使用 window.onload 事件
      window.onload = function () {
        // 这个函数会在页面加载完毕以后在执行
        // 那么这个时候页面的 DOM 元素都已经加载了,我们就可以获取 div 了
      }
    </script>
  </head>
  <body>
    <div></div>
  </body>
</html>
  • 在 html 页面中把 js 写在 body 最后面
<html>
  <head>
    <meta charset="UTF-8" />
  </head>
  <body>
    <div></div>
    
    <script>
    	// 这个代码执行的时候,body 已经加载完毕了
      // 在这里就可以获取到 div,写不写 window.onload 就无所谓了
      
      window.onload = function () {
        // 这个函数会在页面加载完毕以后在执行
        // 那么这个时候页面的 DOM 元素都已经加载了,我们就可以获取 div 了
      }
    </script>
  </body>
</html>

4.2、加载失败(onerror)

  • onerror:比如加载图像时发生错误,则会触发该事件
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<img src="image.gif" onerror="imgError()">
		<p>这里我们引用了不存在的图像,因此发生了 onerror 事件。</p>
	</body>
	<script>
		function imgError() {
			console.log('无法加载图像。');
		}
	</script>
	</head>
</html>

在这里插入图片描述

4.3、窗口变化(onresize)

  • onresize:文档尺寸发生改变时就会触发改事件
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body onresize="myFunction()">
		<p>请尝试调整浏览器窗口的大小。</p>
	</body>
	<script>
		function myFunction() {
			var w = window.outerWidth;
			var h = window.outerHeight;
			console.log("当前窗口大小: width=" + w + ", height=" + h)
		}
	</script>
	</head>
</html>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1410633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LC每日一题 2024/1/25 2859. 计算 K 置位下标对应元素的和

目录 题干 思路 代码 题干 思路 简单的位运算&#xff0c;就是寻找这个数对应的二进制中的1的个数是否与k相同&#xff0c;如果相同&#xff0c;就把这个数加到结果当中 可能涉及到的方法&#xff1a;Integer.bitCount() -->计算出二进制中包含的1的个数 代码 调用Java…

AI新工具(20240124) ComfyUI-InstantID-ComfyUI下的非官方InstantID实现;Lumiere是由谷歌时空扩散模型

ComfyUI-InstantID-ComfyUI下的非官方InstantID实现 ComfyUI InstantID是对InstantID的非官方实现&#xff0c;支持本地和huggingface hub模型&#xff0c;同时支持通用styler。它包括基础模型加载、InsightFace模型加载、ID ControlNet模型加载、Ipadapter_instantid模型加载…

银行数据仓库体系实践(6)--调度系统

调度系统是数据仓库的重要组成部分&#xff0c;也是每个银行或公司一个基础软件或服务&#xff0c;需要在全行或全公司层面进行规划&#xff0c;在全行层面统一调度工具和规范&#xff0c;由于数据类系统调度作业较多&#xff0c;交易类系统批量优先级高&#xff0c;为不互相影…

【算法分析与设计】二叉树的层序遍历

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 题目 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xf…

互联网泛人才流动报告:大厂扩张按下暂停键,这家公司逆势给出5w月薪招人

前段时间&#xff0c;脉脉高聘人才智库发布了《2023年互联网泛人才流动报告》&#xff0c;似乎佐证了23年是互联网真正的寒冬…… 卷生卷死&#xff01;5个人竞争2个岗位 2023年&#xff0c;互联网行业的求职难度可以说是地狱级别&#xff0c;人才供需比持续上升&#xff0c;…

【vue】Vue2和Vue3中的代码逻辑复用对比(mixins、自定义hook):

文章目录 一、前言&#xff1a;二、mixins&#xff1a;【1】mixins是什么&#xff1f;【2】mixins如何使用&#xff1f;【3】mixins的一些特性&#xff1a;【4】mixins的缺点&#xff1a; 三、hook&#xff1a;【1】Vue3.x中的自定义hook函数是什么&#xff1f;【2】mixins和Co…

log4j2配置文件命名及优先级

log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式&#xff0c;2.x版本配置文件后缀名只能为".xml",“.json"或者”.jsn"。 命名规则 默认配置文件名&#xff1a; log4j2.xml 或 log4j2.json 测试或特定环境配置文件名&#xff1a;可以以 -t…

无人机航迹规划(七):五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划(提供MATLAB代码)

一、五种算法&#xff08;DBO、LO、SWO、COA、GRO&#xff09;简介 1、蜣螂优化算法DBO 蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启…

小程序样例3:根据日历创建待办事项

基本功能 1、待办事项查看 选择不同的日期显示不同的待办: 2、选择日期后 新增事项&#xff1a; 3. 点击事项&#xff0c;查看详情 4、删除事项&#xff1a;删除事项3之后&#xff0c;剩余事项2 5、点击日期可以选择更多的月&#xff1a; 实现思路&#xff1a; 1、数据结构&a…

.zip 文件和 .tar.gz文件 的区别

tgz和zip两种压缩格式,其实这两个压缩文件里面包含的内容是一样的,只是压缩格式不一样. tar.gz格式的文件比zip文件要小不少。tar.gz压缩格式用于unix的操作系统, 而zip用于windows的操作系统,但在windows系统中WinRar工具同样可以解压缩tar.gz格式的。 扩展&#xff1a; z…

使用Dockerfile来构建服务的镜像,并部署在容器中

构建服务镜像和容器化部署 一、构建服务镜像1、编写Dockerfile2、构建脚本3、启动脚本 二、问题及解决办法1、no main manifest attribute, in /chatgpt-api-1.0-SNAPSHOT.jar2、如果是SpringBoot项目&#xff0c;应该这么做&#xff1a; 一、构建服务镜像 1、编写Dockerfile …

代码随想录算法训练营第29天 | 491.递增子序列 46.全排列 47.全排列II

非递减子序列 这道题与子集II比较相似&#xff0c;子序列也是子集&#xff0c;而且这里数组中也包含重复元素。但是这道题要有序的序列&#xff0c;所以不能对原来的数组先进行排序。但我们前一篇文章总结过&#xff1a;子集问题中涉及重复元素时&#xff0c;是需要排序的。 这…

pdf添加页眉的4种工具!

在现代数字化的世界中&#xff0c;PDF格式已经成为最常用的文件格式之一&#xff0c;它不仅易于阅读&#xff0c;还具有良好的兼容性。然而&#xff0c;有时候我们需要对PDF文件进行一些修改&#xff0c;例如添加页眉。那么&#xff0c;我们该如何实现这一目标呢&#xff1f;今…

按键协管指南针加速计陀螺仪GPS等原理图纸2

1.imu电路。 加速计包含重力感应。 到传感器芯片u8, U16, U18的信息都是用的spi接口&#xff0c;如下图所示。OSCAR_TO_IMU_SPI_SCLK_FL, IMU_TO_OSCAR_SPI_MISO_FL, OSCAR_TO_IMU_SPI_MOSI_FL接了u8, u16, u18,通过片选信号cs选择哪个芯片接收。 加速计&#xff0c;陀螺仪&…

【开源】基于JAVA+Vue+SpringBoot的音乐平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示 四、核心代码4.1 查询单首音乐4.2 新增音乐4.3 新增音乐订单4.4 查询音乐订单4.5 新增音乐收藏 五、免责说明 一、摘要 1.1 项目介绍 基于微信小程序JAVAVueSpringBootMySQL的音乐平台&#xff0c;包含了音乐…

大数据处理,Pandas与SQL高效读写大型数据集

大家好&#xff0c;使用Pandas和SQL高效地从数据库中读取、处理和写入大型数据集&#xff0c;以实现最佳性能和内存管理&#xff0c;这是十分重要的。 处理大型数据集往往是一项挑战&#xff0c;特别是在涉及到从数据库读取和写入数据时。将整个数据集加载到内存中的传统方法可…

Leetcode—2696. 删除子串后的字符串最小长度【简单】

2023每日刷题&#xff08;八十八&#xff09; Leetcode—2696. 删除子串后的字符串最小长度 实现代码 class Solution { public:int minLength(string s) {string sub " ";for(auto c: s) {if((c B && sub.back() A) || (c D && sub.back() C…

AP5101C 高压线性 LED恒流驱动器 DFN2*2 LED灯汽车雾灯转向灯

产品描述 AP5101C 是一款高压线性 LED 恒流芯片 &#xff0c; 简单 、 内置功率管 &#xff0c; 适用于6- 100V 输入的高精度降压 LED 恒流驱动芯片。电流2.0A。AP5101C 可实现内置MOS 做 2.0A,外置 MOS 可做 3.0A 的。AP5101C 内置温度保护功能 &#xff0c;温度保护点为 130 …

creo草绘3个实例学习笔记

creo草绘3个实例 文章目录 creo草绘3个实例草绘01草绘02草绘03 草绘01 草绘02 草绘03

Higress 开源一周年:新版本,新标准,新工具,新征程

作者&#xff1a;Higress 团队 历程回顾 Higress 开源一年时间&#xff0c;一共发布了 18 个 release 版本&#xff0c;收获了 40 多位社区贡献者和 1800 star&#xff0c;上图是这一年过来达成的一些关键的里程碑。 前面半年通过集成开源生态&#xff0c;打磨开源版本稳定性…