事件对象的介绍

news/2024/5/20 6:27:19/文章来源:https://blog.csdn.net/a1598452168YY/article/details/127439141

● 什么是事件对象?就是当你触发一个事件以后,对该事件的一些描述信息

● 例如:

   ○ 你触发一个点击事件时,你点了哪个位置,坐标多少,都在事件对象的属性中体现

   ○ 你触发一个键盘事件时,你按下的是哪个按钮,事件对象里的属性就能体现

   ○ ...

● 每个事件都会有一个对应的对象来描述这些信息,我们就把这个对象叫做事件对象

下面拿键盘抬起事件和点击事件举例,了解怎么获得事件对象以及事件对象的作用: 

  ○ 键盘抬起:

<body><input type="text" id="username"><script>username.onkeyup = function(evt){console.log(evt)}</script>
</body>

结果:

 

解释说明:我们给input绑了一个键盘抬起事件,当鼠标抬起就会触发事件,但是缺少一个接收这个触发事件信息的对象,如果没有这个对象,我们就不知道你到底按了然后抬起了哪个键,我们需要有一个事件对象来存储这个信息,所以给函数传递了一个形参“evt”,到时候传一个实参,这个实参就是事件对象,所以事件对象就是这个“evt”型材传过来的,我们打印一个这个形参(传过来的事件对象) 的结果,发现我在界面上用键盘输入一个a,并抬起键盘,结果就打印输出关于此时键盘操作的信息,看红框里的东西,key=“a”,keyCode=65,这个事件就记录了我们抬起了a键,keyCode=65,这就是事件对象的作用。

○  所以当我们直接调用事件里面的keyCode的值,就知道键盘打印的是哪个键了(每个键都有对应的keyCode值):

<body><input type="text" id="username"><script>username.onkeyup = function(evt){console.log(evt.keyCode)}</script>
</body>

结果:

结果解释:在输入框里我输入了a--b--c--Enter,所以它们对应的keyCode值分别是:65、66、67、13,所以“Enter”键的keyCode值是“13”,所以我们就可以通过判断keyCode是否等于13,就可以判断出用户是否按下了回车键。

<body><input type="text" id="username"><script>username.onkeyup = function(evt){console.log(evt.keyCode)if(evt.keyCode===13){console.log("Enter,创建节点")}}</script>
</body>

 

○ 点击事件:

<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 100px;height: 100px;background-color: aquamarine;}</style>
</head>
<body><div id="obox">111</div><script>obox.onclick = function(evt){console.log(evt)}</script>
</body>

结果:

当你每次点击时,它就会记录你的点击的位置,可以参考clientX,clientY或者offsetX,offsetY或者pageX,pageY。。

● clientX, clientY | offsetX, offsetY | pageX, pageY的区别:

clientX, clientY:指的是鼠标点击位置距离可视窗口的坐标;

图示:在不拉滚动条的情况下

 在拉滚动条的情况下: 还是点击位置距离可视窗口左上角的距离

pageX, pageY:指的是距离页面左上角的距离,就是当你拉滚动条时,距离值也不变

图示:当你没拉滚动条时,此时点击页面左上角也就是窗口的左上角,所以当你没拉滚动条,距离就是下面图的距离;但是当你拉了滚动条,页面也就上去了,此时页面左上角不等于窗口左上角,而这个pageX, pageY是距离页面左上角的距离,当你点击同一个位置,这个坐标是不变的。

 offsetX, offsetY:距离触发元素左上角的坐标值

图示:

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索增强型灰狼优化算法

文章目录一、理论基础1、灰狼优化算法2、探索增强型灰狼优化算法&#xff08;1&#xff09;改进的位置更新公式&#xff08;2&#xff09;非线性控制参数策略&#xff08;3&#xff09;EEGWO算法伪代码二、仿真实验与结果分析三、参考文献一、理论基础 1、灰狼优化算法 请参考…

计算机科学与技术是信息文明时代的入口,是数字世界的基石,是人们必须掌握的基本技能之一

从人类科技发展史的角度看&#xff0c;软件工程&#xff08;计算机编程&#xff09;是刚刚开始的信息文明巨大的趋势中的一部份。人类至今经历过三次工业革命。第一次工业革命的代表是蒸汽机&#xff0c;使得人类拥有了强大的动力。第二次工业革命的代表是电力和石油&#xff0…

高数_第6章无穷级数_幂级数之__阿贝尔定理

阿贝尔定理&#xff1a; 如果幂级数 在 点 x x₀(x₀≠0)处收敛&#xff0c; 则对于适合不等式 |x| < |x₀|的一切x, 都有幂级数 在点 x 处绝对收敛&#xff1b; 反之&#xff0c;如果幂级数 在点 x x₀ (x₀≠0)处发散&#xff0c; 则对于适合不等式 |x| >…

使用Code Chart绘制流程图

Code Chart介绍 Code Chart是一个基于 Javascript 的图表和图表工具&#xff0c;它基于 markdown 语法来简化和加速生成流程图的过程&#xff0c;也不止于生成流程图。 工具地址&#xff1a;https://www.iodraw.com/codechart 图形 头部用graph 或flowchart 关键字来声明流程…

Anaconda安装

文章目录1. Anaconda3简介2. Anaconda3下载3. Anaconda3安装1. Anaconda3简介 Anaconda3 是一个用于 Python 科学计算和机器学习的开源工具&#xff0c;它是 Python 的一个科学计算发行版&#xff0c;支持 Linux、macOS 和 Windows 系统&#xff0c;包含 conda 等众多工具包和…

python抓取Prometheus的数据(使用prometheus-api-client库)

python抓取Prometheus的数据(使用prometheus-api-client库) 0、写在前面 我们要想抓取Prometheus的数据,一般想到的就是requests请求,爬虫的方式来抓取,这是可行的,当然,还有一个第三方库直接封装好了,直接用就行,代码也比较少,源码点进去就能看明白,这个库叫promet…

多链世界的“高速公路”:一文读懂跨链协议演进与未来

当我们发现自己正处于另一个“加密货币寒冬”之中——这在很大程度上是由一系列项目破产、监管打击和宏观看跌推动的——但重要的是&#xff0c;我们不要忽视促成下一次牛市的技术突破和将权力下放的精神重新引入大众。 上一个周期的主题之一仍然是行业参与者讨论的最前沿的主…

无网络机器上,win下vscode客户端通过ssh连接linux服务器

目录 参考文献 前言 下载安装VSCode 下载 安装 下载和安装必要的VSCode插件 下载 安装 客户端通过ssh远程连接linux服务器 下载并安装ssh 远程连接linux服务器 参考文献 Windows使用VSCode远程Linux&#xff08;ConteOS&#xff09;开发/调试C/C&#xff08;超详细…

是真是假,AI可根据声音检测是否感染新冠 准确率达89%

据媒体报道&#xff0c;近日&#xff0c;在西班牙巴塞罗那举行的欧洲呼吸学会国际会议上公布的一项研究显示&#xff0c;AI可通过手机应用程序从人们声音中检测出新冠肺炎感染&#xff0c;其准确率达到89%。 新冠肺炎感染通常会影响上呼吸道和声带&#xff0c;导致一个人的声音…

No6.从零搭建spring-cloud-alibaba微服务框架,实现fegin、gateway、springevent等(一)

代码地址与接口看总目录&#xff1a;【学习笔记】记录冷冷-pig项目的学习过程&#xff0c;大概包括Authorization Server、springcloud、Mybatis Plus~~~_清晨敲代码的博客-CSDN博客 之前只零碎的学习过spring-cloud-alibaba&#xff0c;并没有全面了解过&#xff0c;这次学习p…

React+fetch 发送post请求 处理请求头参数配置

观看本文前 你要对fetch有一些了解 如果不了解可以先查看我的文章 React之初识fetch 通过fetch发送一个简单GET请求 然后我们来看 pust基本语法 fetch("请求地址",{method: post,headers: {Content-Type: application/json,"Authorization": "Bearer…

传统的回调函数与 ES6中的promise回调以及 ES7 的async/await终极的异步同步化

目录 传统的回调函数封装 ES6中的promise 异步同步化&#xff08;终极&#xff09; 传统的回调函数封装 js中的回调函数的理解&#xff1a;回调函数就是传递一个参数化函数&#xff0c;就是将这个函数作为一个参数传到另外一个主函数里面&#xff0c;当那个主函数执行完之后…

ACM MM 2022 Oral | PRVR: 新的文本到视频跨模态检索子任务

作者: 陈先客方向: 跨模态检索学校: 浙江工商大学概览本文介绍一篇ACM MM 2022 Oral的工作。基于传统的跨模态文本-视频检索(Video-to-Text Retrieval, T2VR)任务&#xff0c;该工作提出了一个全新的文本到视频跨模态检索子任务&#xff0c;即部分相关的视频检索(Partially Rel…

vue动态换肤(自定义主题)

前言 有时候一个项目的主题并不能满足所有人的审美, 所以这个时候就需要换肤功能登场了。 下面是一个换肤demo, 思路很简单&#xff0c;定义一个全局css变量&#xff0c;然后在页面根元素获取变量并动态修改这个变量值即可完成。 效果 具体实现 1.准备项目 准备一个含有less、…

什么是开源工作流框架?有什么特点?

在大数据时代&#xff0c;开源工作流框架也成为大家提升办公效率的利器软件之一。那么&#xff0c;什么是开源工作流框架&#xff1f;又有哪些特点&#xff1f;作为低代码平台服务商&#xff0c;流辰信息有责任和义务潜心研发更多优良的软件产品&#xff0c;为各大中型企业提升…

外汇天眼:ThinkMarkets 获得 CySEC 许可证,允许其从塞浦路斯扩展其欧盟服务

澳大利亚零售外汇和差价合约经纪商ThinkMarkets收购了一家获得CySEC许可的公司&#xff0c;并获得了其 CIF 许可证。它正在积极提高其塞浦路斯办事处为欧盟客户服务的能力。 与许多其他经纪人一样&#xff0c;ThinkMarkets过去通过总部位于伦敦并获得 FCA 许可的 TF Global Mar…

使用 RNN 模型从零实现 情感分类(详解)

文章目录说明思路Step1&#xff1a;读取数据集Step2&#xff1a;生成 tokens 数组Step3&#xff1a;使用 Word2Vec 生成词向量Step4&#xff1a;将 tokens 内的词语转化为向量索引Step5&#xff1a;生成训练集与测试集Step6&#xff1a;构建 RNN 循环神经模型Step7&#xff1a;…

助力企业转型,华为云CDN值得期待!

助力企业转型&#xff0c;华为云CDN值得期待! 在数字化转型的潮流中&#xff0c;传统的门户网站已经不能适应新时代发展要求。随着云计算、大数据等新一代信息技术与行业深度融合&#xff0c;以电子商务、社交网络、移动应用为代表的新兴领域正在崛起&#xff0c;并成为推动整…

从“数据”到“引擎”,蜂鸟视图室内外一体化解决方案全新升级

伴随着时代科技的风口和数字化经济的发展&#xff0c;空间可视化在智慧城市、智慧社区、智慧楼宇、智慧工地、智慧园区等项目中的重要性日趋凸显。 近日&#xff0c;围绕“打破边界 联动交互”的主题&#xff0c;蜂鸟视图发布了由外到内&#xff0c;空间不再“割裂”的室内外…

在外打工学什么技术有前景?

在外打工学什么技术有前景&#xff1f;偶然在头条上看见过这样一个问题“打工打的心慌&#xff0c;不打工有什么路可以选择&#xff1f;”从这个问题里就能看出很多的情绪&#xff0c;在外打工所受的委屈与处于社会底层的轻视&#xff0c;不仅工资低&#xff0c;并且看不见前景…