前端开发:JS中常用事件汇总

news2024/9/22 15:39:22

前言

在前端开发中,关于事件相关的操作是非常常见的操作,尤其是实际业务场景中涉及复杂交互的需求。在JS中比较常用的事件有很多,而且涉及不同方式不同类型的点击事件,一般情况下事件会和函数结合使用,这就是事件和函数不分家的原因,即通过发生的事件来驱动函数执行。关于常用事件的使用,本文就来详细分享一下,记录一下,方便后期查阅使用。

JS中的事件是什么?

在JS中,事件其实指的是用户在某个事务中由于某种行为而执行的操作,即对web页面元素的某些操作行为。事件是文档或者浏览器窗口中发生的、特定的交互操作瞬间,它是用户或浏览器自身执行的某种动作,且是JS和DOM间交互的桥梁,比如click、load和mouseover都是事件的名称。事件通常与函数配合来使用,为的是可以通过发生的事件来驱动函数执行。

注意:在JS中,事件名称大小写敏感。如果是事件监听方式,需要在事件名称前面取消on。

事件三要素

事件的三要素指的是事件源头、事件本身、事件驱动。

1、事件源头:是指在哪个元素中引发的事件,比如:div标签、button标签等。

2、事件自身:事件是指交互时候执行的动作,比如:单击、双击、滑动等。

3、事件驱动程序:也叫事件处理程序,即执行之后的结果,比如:单击button标签所执行的点击事件函数。

JS中的事件汇总

在JS中,关于常用的事件,主要有六类:键盘事件、鼠标事件、触摸事件、表单事件、过渡事件、动画事件。

1、键盘事件

键盘事件主要分为三种状态下的触发:松开、按下、不识别功能键。具体如下所示:

键盘事件

触发条件

onkeyup

当某个键盘按键被松开时触发

onkeydown

当某个键盘按键被按下时触发

onkeypress

当某个键盘按键被按下时触发且不识别功能键,如 ctrl 

使用示例,当键盘被松开时触发,并输出“Hello!”,具体代码如下所示:

window.onkeyup = function() {

  console.log('Hello!')

}

2、鼠标事件

鼠标事件主要分为十种状态下的触发:左键、右键、双击、经过、离开、获得焦点、失去焦点、移动、弹起、按下。具体如下所示:

鼠标事件

触发条件

onclick

当鼠标点击左键时候触发

oncontextmenu

当鼠标点击右键时候触发

ondblclick

当鼠标双击时候触发

onmouseover

当鼠标经过时候触发

onmouseout

当鼠标离开时触发

onfocus

当获得鼠标焦点时候触发

onblur

当失去鼠标焦点时候触发

onmousemove

当鼠标移动时候触发

onmouseup

当鼠标弹起时候触发

onmousedown

当鼠标按下时触发

使用示例,当鼠标点击左键时候触发,给btn按钮添加点击事件,点击输出Hello!,具体代码如下所示:

let button = document.querySelector('button')

button.onclick = function() {

console.log('Hello!')

}

 

3. 触摸事件

触摸事件主要分为三种状态下的触发:触摸、滑动、移开。具体如下所示:

触摸事件

说明

touchstart

当手指触摸到一个 DOM 元素的时候触发

touchmove

当手指在一个 DOM 元素上滑动的时候触发

touchend

当手指从一个 DOM 元素上移开的时候触发

使用示例,当触摸事件时候触发,当手指触摸盒子的时候触发,具体代码如下所示:

let title = document.querySelector('div')

title.touchstart = function() {

console.log('touch')

}

 

4. 表单事件

表单事件主要分为七种状态下的触发:获得焦点、失去焦点、输入、改变、选中、重置、提交。具体如下所示:

表单事件

触发条件

onfocus

当表单获得焦点的时候触发

onblur

当表单失去焦点的时候触发

oninput

当表单每次输入当时候触发

onchange

当表单内容发生改变的时候触发

onselect

当表单文本被选取的时候触发

onreset

当表单重置的时候触发

onsubmit

当表单提交的时候触发

使用示例,当表单每次输入的时候触发,将表单中每次输入的内容打印出来,具体代码如下所示:

let input = document.querySelector('input')

input.oninput = function() {

console.log(this.value); //value就是输入的内容

}

 

5. 过渡事件

过渡事件是在过渡完成的时候触发。具体如下所示:

过渡事件

触发条件

ontransitionend

在过渡完成时触发

6. 动画事件

动画事件主要分为三种状态下的触发:结束、重复、播放。具体如下所示:

动画事件

触发条件

onanimationend

当动画结束播放的时候触发

onanimationiteration

当动画重复播放的时候触发

onanimationstart

当动画开始播放的时候触发

事件对象

在JS中的事件对象主要有:事件对象、鼠标事件对象、键盘事件对象。

1、事件对象

事件对象主要包括四部分:对象、类型、方法、阻止冒泡。具体如下所示:

事件对象的属性方法

说明

e.target

指的是返回触发事件的对象

e.type

指的是返回事件的类型,如click、mouseover、不带on

e.preventDefault()

指的是方法,该方法阻止默认事件,如禁止页面左键

e.stopPropagation()

指的方法,该方法是阻止事件冒泡

使用示例,当点击按钮后打印触发事件的对象,具体代码如下所示:

let button = document.querySelector('button')

button.onclick = function(e) {

console.log(e.target); //触发事件的对象

}

 

2、鼠标事件对象

鼠标事件对象主要包括六部分:浏览器x坐标、浏览器y坐标、文档x坐标、文档y坐标、屏幕x坐标、屏幕y坐标。具体如下所示:

鼠标事件对象

说明

e.clientX

指的是返回鼠标相对于浏览器窗口可视区的 X 坐标

e.clientX

指的是返回鼠标相对于浏览器窗口可视区的Y坐标

e.pageX

指的是返回鼠标相对于文档页面的 X 坐标

e.pageY

指的是返回鼠标相对于文档页面的Y 坐标

e.screenX

指的是返回鼠标相对于电脑屏幕的 X 坐标

e.screenY

指的是返回鼠标相对于电脑屏幕的 Y坐标

3、键盘事件对象

键盘事件对象主要指的是返回用户按下的物理按键的值。具体如下所示:

键盘事件对象

说明

e.key

返回用户按下的物理按键的值

使用示例,当在页面中按下S键之后,输出按下的物理按键的值,具体代码如下所示:

window.addEventListener('keyup', function(e) {

console.log(e.key);

})

最后

通过本文关于前端开发JS中常用事件的详细介绍,不管是在实际的前端开发工作中还是在前端求职面试中都是非常关键的知识点,所以作为前端开发者来说必须要掌握它相关的内容,尤其是从事前端开发不久的开发者来说尤为重要,是一篇值得阅读的文章,重要性就不在赘述。欢迎关注,一起交流,共同进步。

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

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

相关文章

Python 背包问题

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

MySQL阶段DAY20(附笔记)

【注意】:工厂模式学习知识结构如下: (一)、单例模式 1.Single类: 使用懒汉式:对象的延迟加载,安全的,高效的应用 双重判断提升效率和安全性 package singleton;/** 单例设计模式之…

Prisma 国内镜像设置

背景 相信大家在体验完 prisma 后,一般都是会感觉开发起来很方便,功能使用起来很顺畅很爽,但是想推广起来团队内使用的时候发现。。。 原因是prisma client 需要下载几个引擎,在其他没有翻墙工具的小伙伴使用的时候发现一直下不下…

供应商管理解决方案实战指南:打造高效供应链

在现代商业环境中,供应商管理是企业成功运营的关键因素之一。随着全球化和供应链的复杂性不断增加,供应商管理面临着许多挑战,如供应商选择、供应商绩效评估和供应链风险管理等。为了解决这些挑战,企业需要采取一系列的解决方案&a…

Sui x KuCoin Labs夏季黑客松第四批入围项目公布

自Sui x KuCoin Labs夏季黑客松开放注册以来,收获了众多开发者的关注和报名参与。现在比赛的报名阶段已结束,截至目前为止,我们已经公布了三批入围项目名单,现在第四批入围名单项目新鲜出炉,最后一轮入围结果将于7月12…

十、HTML中的浮动

1、浮动 1、浮动 块级元素 独占一行 若块级元素宽度较少时,导致后续是空白 布局 先整体,后局部 先简单,再复杂 复杂再划分 整体布局 局部 2、float属性 浮动飘 float属性 让网页元素按照标准文档流方式显示 自上到下,…

19.内部温度传感器

1.STM32内部温度传感器介绍: 内部温度传感器支持的温度范围为:-40~125度,精度为1.5℃左右;T(℃){(V25-Vsense)/Avg_Slope}25;STM32的内部温度传感器是直接连接在ADC内部输入通道,在ADC1通道16连接的内部温度传感器&am…

Django基础入门⑬:Cookie和Session详讲和Django HTML表单实战讲解

Django基础入门⑫:Django 对象查询详解,分组聚合 Cookie和SessionCookie简述Session使用Session的定义理解Session的作用 Session配置Session的基本操作Session在settings.py中的配置Cookie和Session的区别 Django HTML表单实战HTML表单实现用户的登录实…

基于混沌集成决策树的电能质量复合扰动识别(matlab代码)

目录 1 主要内容 2 部分代码 3 程序结果 4 程序链接 1 主要内容 该程序参考《基于混沌集成决策树的电能质量复合扰动识别》,主要做的是S变换电能质量扰动识别,通过S变换对电能质量扰动(谐波,闪变,暂升等单一扰动和…

15 | 边界:微服务的各种边界在架构演进中的作用?

目录 演进式架构 微服务还是小单体? 微服务边界的作用 逻辑边界 物理边界 代码边界 正确理解微服务的边界 总结 那重点落到边界的时候,总结一下就是,微服务的设计要涉及到逻辑边界、物理边界和代码边界等等。 那么这些边界在微服务架…

vue清除地址栏参数(可以单个,可以多个)

需求 vue跳转新页面后,清除url里面的参数,就是上一个页面带过来的参数,只用一次 mounted () {this.$nextTick(() > {let url this.getnewurl()window.history.replaceState(null, null, url);})},methods: { //根据参数名去清除&#xf…

深度学习训练营之调用Gensim来训练Word2Vec模型

深度学习训练营之调用Gensim来训练Word2Vec模型 原文链接环境介绍前置工作下载Gensim库对于原始语料进行分词添加停用词 模型训练模型介绍模型正式训练 计算词频 原文链接 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍦 参考文章&#…

C#:了解LINQ,简化数据查询和操作的强大工具

文章目录 linq关键字fromwhereselectorderbyjoingroupletinto linq方法筛选方法WhereOfType 排序方法:OrderByOrderByDescendingThenByThenByDescending 投影方法:SelectSelectMany 分组方法:GroupBy 连接方法:JoinGroupJoin 聚合…

高效方案:30万条数据插入 MySQL 仅需13秒

本文主要讲述通过MyBatis、JDBC等做大数据量数据插入的案例和结果。 30万条数据插入插入数据库验证 实体类、mapper和配置文件定义 User实体 mapper接口 mapper.xml文件 jdbc.properties sqlMapConfig.xml 不分批次直接梭哈 循环逐条插入 MyBatis实现插入30万条数据 J…

SpringBoot 集成 MybatisPlus 一——介绍

MybatisPlus 是 Mybatis 的升级版本,是对 Mybatis 的简化,因为他们的口号就是“为简化开发而生”。 1、创建数据表 CREATE TABLE ​​User​​ ( ​​id​​ INT NOT NULL, ​​username​​ VARCHAR(50) NULL DEFAULT NULL, ​​gendar​​ CHAR(2) NU…

了解微服务架构

微服务架构 软件架构历史 Software As A Service,这不仅仅是⼀个理念,它更多释放的是企业在新⼀轮的市场竞争中,如何使⽤轻量级的组织架构和新的软件架构来更好的服务企业⾯向未来的战略调整和市场定位,从⽽赢得未来的市场空间。…

【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(7 月 6 日论文合集)

文章目录 一、分割|语义相关(15篇)1.1 Prompting Diffusion Representations for Cross-Domain Semantic Segmentation1.2 ZJU ReLER Submission for EPIC-KITCHEN Challenge 2023: Semi-Supervised Video Object Segmentation1.3 Multi-Modal Prototypes for Open-Set Semanti…

基于YOLO的3D人脸关键点检测方案

目录 前言一、任务列表二、3D人脸关键点数据H3WB2.下载方法3.任务4.评估5.使用许可 3DFAWAFLW2000-3D 三、3D关键点的Z维度信息1.基于3DMM模型的方法2.H3WB 四、当前SOTA的方法1.方法1 五、我们的解决方法1.数据转为YOLO格式2.修改YOLO8Pose的入口出口3.开始训练,并…

aardio 的addHeaders请求

aardio群 625494397 废话不多说 直接开干! import web.json; import console; import inet.whttp; web.json.parse( json );//转化json格式 h.addHeaders {Accept-Encoding gzip, deflate, br;Accept-Language zh-CN,zh;q0.9;User-Agent Mozilla/5.0 (Windows …

浅谈智能照明控制管理系统的功能介绍

安科瑞电气股份有限公司 上海嘉定 201801 摘要:智能照明控制系统较好地实现了智能控制、人性化照明和节能降耗的功能,使其在楼宇控制领域变得越来越重要,越来越受到人们的重视。本文介绍了智能照明控制系统的概念、特点、优势、发展方向等内容,并着重对智能照明控制…