clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析

首先,这些属性都是 MouseEvent 对象的属性,表示事件发生时鼠标的位置信息。

接下来,我们逐个来分析一下这些属性的区别。

  1. clientX
    clientX 表示事件发生时,鼠标在浏览器视口中的水平坐标。也就是说,它是相对于浏览器窗口左上角的水平距离。

下面是一个示例:

<div id="box" style="width: 200px; height: 200px; border:1px solid #000;">
  <script>
    document.querySelector('#box').addEventListener('click', function(event) {
      console.log(`clientX: ${event.clientX}`);
    });
  </script>
</div>

当在 #box 内点击时,会在控制台输出鼠标在浏览器视口中的水平坐标。

  1. pageX
    pageX 表示事件发生时,鼠标在文档中的水平坐标。也就是说,它是相对于文档左上角的水平距离。在浏览器滚动的情况下,它的值会包括滚动距离。

下面是一个示例:

<div id="box" style="width: 200px; height: 200px; border:1px solid #000;">
  <script>
    document.querySelector('#box').addEventListener('click', function(event) {
      console.log(`pageX: ${event.pageX}`);
    });
  </script>
</div>

当在 #box 内点击时,会在控制台输出鼠标在文档中的水平坐标。

  1. offsetX
    offsetX 表示事件发生时,鼠标相对于事件对象的内部元素的水平坐标。

下面是一个示例:

<div id="box" style="width: 200px; height: 200px; border:1px solid #000;">
  <script>
    document.querySelector('#box').addEventListener('click', function(event) {
      console.log(`offsetX: ${event.offsetX}`);
    });
  </script>
</div>

当在 #box 内点击时,会在控制台输出鼠标相对于 #box 元素的水平坐标。

  1. x
    xpageX 的别名,表示事件发生时鼠标在文档中的水平坐标。在某些浏览器中,可能没有 pageX 属性,所以可以使用 x 来代替。

  2. layerX
    layerX 已经被废弃,但是在一些老的浏览器中仍然可以使用。它表示事件发生时,鼠标在相对于事件的目标元素的水平坐标。

下面是一个示例:

<div id="box" style="width: 200px; height: 200px; border:1px solid #000;">
  <script>
    document.querySelector('#box').addEventListener('click', function(event) {
      console.log(`layerX: ${event.layerX}`);
    });
  </script>
</div>

当在 #box 内点击时,会在控制台输出鼠标相对于事件目标元素 #box 的水平坐标。

  1. screenX
    screenX 表示事件发生时,鼠标在屏幕中的水平坐标。也就是说,它是相对于屏幕左上角的水平距离。

下面是一个示例:

<div id="box" style="width: 200px; height: 200px; border:1px solid #000;">
  <script>
    document.querySelector('#box').addEventListener('click', function(event) {
      console.log(`screenX: ${event.screenX}`);
    });
  </script>
</div>

当在 #box 内点击时,会在控制台输出鼠标在屏幕中的水平坐标。

  1. offsetLeft
    offsetLeft 表示元素相对于其最近的已定位祖先元素的左外边框的距离,单位为像素。

下面是一个示例:

<div id="container" style="position: relative; left: 50px; top: 50px;">
  <div id="box" style="width: 100px; height: 100px; border: 1px solid #000;"></div>
  <script>
    document.querySelector('#box').addEventListener('click', function(event) {
      console.log(`offsetLeft: ${event.target.offsetLeft}`);
    });
  </script>
</div>

当在 #box 内点击时,会在控制台输出 #box 相对于 #container 的左外边框的距离。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 一文读懂TS 中联合类型和交叉类型各自的含义

    一文读懂 TS 中联合类型和交叉类型各自的含义 在 TypeScript 中,联合类型和交叉类型是两种非常重要的概念。它们可以帮助我们更好地描述类型,提高代码的清晰度和健壮性。接下来我们将详细讲解这两种类型的含义和用法。 联合类型 联合类型(Union Types)表示一个值可以是多种类型中的一种。用 | 符号连接多个类型,表示这些类型是可选的,例如: le…

    JavaScript 2023年5月28日
    00
  • JavaScript在for循环中绑定事件解决事件参数不同的情况

    JavaScript 在 for 循环中绑定事件时,通常会遇到事件参数不同的情况,这种情况下,如果不加以处理,则会导致事件回调出错或者引起内存泄漏等问题。解决该问题的方法是通过使用闭包和立即执行函数表达式,来给事件参数绑定上恰当的值。下面是具体的攻略: 1. 通过立即执行函数表达式给事件参数绑定上值 通过立即执行函数表达式可以在每次迭代时创建一个新的作用域,…

    JavaScript 2023年6月10日
    00
  • Javascript Math sin() 方法

    JavaScript中的Math.sin()方法是用于计算一个角度的正弦值的函数。以下是关于Math.sin()方法的完整攻略,包含两个示例。 JavaScript Math对象的sin方法 JavaScript的sin()方法用于计算一个角的正弦值。下面是sin()方法的语法: Math.sin(angle) 其中,angle表示角度,单位为弧度。 下面是…

    JavaScript 2023年5月11日
    00
  • JS实现带阴历的日历功能详解

    关于“JS实现带阴历的日历功能详解”这个话题,我可以提供以下完整攻略: 简介 该功能主要是通过JS编写代码来实现,主要涉及到公历转农历的计算及日历界面的渲染。实现的目标是在常规的日历功能基础上增加阴历信息的显示,并支持选择日历日期导航切换。 实现步骤 1.公历转农历计算 公历转农历的计算主要涉及到对阳历年月日的解析和推算、传统农历基础数据的读取和查表等。我们…

    JavaScript 2023年5月27日
    00
  • JavaScript事件处理程序(事件侦听器)

    JavaScript事件处理程序(也被称为“事件侦听器”)就是一段代码,当事件发生时会被执行。可以使用HTML中的on-属性来绑定JavaScript事件处理程序,也可以使用JavaScript中的addEventListener()方法来绑定。下面就让我们来详细讲解一下JavaScript事件处理程序的完整攻略: 什么是事件处理程序? 事件处理程序就是一段…

    JavaScript 2023年5月27日
    00
  • 一文总结JavaScript中Promise遇到的问题

    一文总结JavaScript中Promise遇到的问题 Promise是什么? Promise是一种规范,主要解决了JavaScript中回调地狱的问题,可以让我们更加方便地进行异步编程。Promise主要有以下三种状态: Pending(进行中) Fulfilled(已完成) Rejected(已拒绝) Promise的基本用法 function fetc…

    JavaScript 2023年5月28日
    00
  • JavaScript极简入门教程(一):基础篇

    JavaScript是一门适用于Web前端开发的脚本语言,可以为静态的HTML页面增加一定的动态效果和交互性。 本篇教程是JavaScript的基础篇,主要介绍JavaScript的基础语法和常见数据类型,是初学者了解JavaScript的必备知识。具体内容如下: JavaScript基础语法 1. 注释 JavaScript的注释有两种方式,单行注释使用/…

    JavaScript 2023年5月17日
    00
  • JavaScript操作Cookie详解

    当我们开发Web应用程序时,经常会使用cookie来存储和维护用户的数据,在JavaScript中,对cookie的操作可以使用document.cookie属性来完成。本篇攻略将详细介绍JavaScript中对cookie的操作。 创建与修改Cookie JavaScript中创建和修改cookie的方法都是通过设置document.cookie属性实现。…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部