了解 Javascript Event 对象

简介: 我们对元素进行点击操作时候,会产生一个 Event 的对象,那么它都有些什么呢?本文带你了解一下

image.png


一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第14天,点击查看活动详情


我们对元素进行点击操作时候,会产生一个 Event 的对象,那么它都有些什么呢?本文带你了解一下:


<button id="demo">event</button>
<script>
  let demo = document.getElementById('demo');
  demo.addEventListener('click', function(event) {
    console.log(event)
  })
</script>
复制代码


image.png


如上图,Event 对象包含众多的属性和方法。我们来了解比较重要的几个...


clientX / clientY



clientXclientY 都是只读属性,提供发生事件时的客户端区域的水平坐标和垂直坐标。不管页面是否滚动,客户端区域的左上角的 clientXclientY 都是 0


注意:以**可视区域(客户端)**的左上角位置为原点


image.png


offsetX / offsetY



offsetXoffsetY 都是只读属性,规定了事件对象与目标节点的内填充边在 XY 轴上的偏移量。


注意:以目标元素的(含 padding )左上角位置为原点


image.png


screenX / screenY



screenXscreenY 都是只读属性,提供事件鼠标在全局(屏幕)中的水平和垂直距离。


注意:以屏幕的左上角位置为原点


点击的元素位置相对电脑屏幕的左上角为坐标原点计算。得到的数值感觉不是很准,了解一下就好...


layerX / layerY



layerXlayerY 都是只读属性。


若目标元素自身有定位属性的话,就目标元素(包含 padding )的左上角作为原点计算。 若目标元素自身没有定位属性的话,往上找有定位属性的父元素的左上角为原点计算距离。 若父元素都没有定位属性的话,那么就以 body 元素的左上角为原点计算。


用得也不多,了解下就行...


pageX / pageY



pageXpageY 都是只读属性,表示相对于整个文档的水平或者垂直坐标。这两个属性是基于文档边缘,考虑任何页面的水平或者垂直方向上的滚动。


注意:以文档的左上角位置为原点


image.png


区别这么多的属性,最主要是确定原点应该在哪里


读过之后,你是否已经对文章 Angular 结合 rxjs 实现拖拽 中的相关计算有所感悟呢?



相关文章
|
2天前
|
JSON JavaScript 前端开发
js如何格式化一个JSON对象?
js如何格式化一个JSON对象?
10 3
|
9天前
|
JavaScript 前端开发
js之浏览器对象|28
js之浏览器对象|28
|
1月前
|
JavaScript 前端开发
JavaScript基础知识-枚举对象中的属性
关于JavaScript基础知识中如何枚举对象属性的介绍。
27 1
JavaScript基础知识-枚举对象中的属性
|
23天前
|
JavaScript 前端开发
JavaScript Boolean(布尔) 对象
Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false)。
29 8
|
5天前
|
存储 JavaScript 前端开发
JavaScript Number 对象
JavaScript Number 对象
9 0
|
5天前
|
JavaScript 前端开发
JavaScript prototype(原型对象)
JavaScript prototype(原型对象)
11 0
|
5天前
|
JavaScript 前端开发
JavaScript 对象
JavaScript 对象
9 0
|
1月前
|
JavaScript 前端开发
JavaScript基础知识-对象的基本操作
关于JavaScript对象基本操作的基础知识文章。
30 2
|
1月前
|
JavaScript 前端开发
JavaScript基础知识-对象字面量
文章介绍了JavaScript中对象字面量的创建和使用,包括基本语法、属性赋值以及如何在控制台输出对象属性。
29 0
JavaScript基础知识-对象字面量
|
1月前
|
JavaScript 前端开发 API
Javaweb之javascript的BOM对象的详细解析
BOM为Web开发提供了强大的API,允许开发者与浏览器进行深入的交互。合理使用BOM中的对象和方法,可以极大地增强Web应用的功能性和用户体验。需要注意的是,BOM的某些特征可能会在不同浏览器中表现不一致,因此在开发过程中需要进行仔细的测试和兼容性处理。通过掌握BOM,开发者能够制作出更丰富、更动态、更交互性的JavaWeb应用。
17 1