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

yizhihongxing

首先,这些属性都是 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日

相关文章

  • javascript数组里的27个方法总合详解

    首先,我们需要了解JavaScript数组的数据结构和一些常用的API。以下是这篇攻略的大纲: JavaScript数组:数据结构和常用API 1. 数组基础 数组是一种有序的数据集合。它可以存储任何类型的数据,包括数字、字符串、函数、对象等等。一个数组可以包含任意数量的元素,每个元素可以通过一个索引值(从0开始)来访问。 数组的常用操作包括:创建数组、添加…

    JavaScript 2023年5月27日
    00
  • 浅析JSON序列化与反序列化

    浅析JSON序列化与反序列化 JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。 JSON格式的数据结构包括以下几个部分: 数组:用方括号([])表示,里面包含一组项,各项之间用逗号隔开。 对象:用花括号({})表示,里面包含一组键值对,各键值对之间用逗号隔开,…

    JavaScript 2023年6月11日
    00
  • 实例解析Array和String方法

    实例解析Array和String方法 在 JavaScript 开发中,使用 Array 和 String 是非常常见的。为了更好的掌握这两个数据类型,了解其方法使用是非常必要的。本文将会讲解 Array 和 String 常用的方法以及使用示例。 Array方法 push 语法:arrayObject.push(newelement1,newelement…

    JavaScript 2023年6月10日
    00
  • js中格式化日期时间型数据函数代码

    要在JavaScript中格式化日期时间型数据,可以使用Date对象自带的方法,也可以使用第三方库如Moment.js。下面将分别介绍这两种方法的使用。 使用Date对象自带的方法 使用Date对象自带的方法可以方便地获取当前的日期时间或指定日期时间的格式化值。以下是一些常用的Date对象方法及其返回值: Date.getFullYear() 获取指定日期的…

    JavaScript 2023年5月27日
    00
  • jquery请求servlet实现ajax异步请求的示例

    下面我将为您提供详细讲解“jquery请求servlet实现ajax异步请求的示例”的完整攻略。 1. 准备工作 在开始之前,我们需要先完成以下几个准备工作: 确认您已经具备一定的 Java 和 jQuery 技能。 确认您已经安装了 Java 开发环境和一个 Web 服务器,例如 Tomcat。 确认您的 Web 服务器已经正常运行。 准备一个普通的 HT…

    JavaScript 2023年6月11日
    00
  • JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8

    这个错误提示通常是由于 HTML 文件中的字符编码指定错误导致的。下面是一些可能的原因和解决方案: 编码不匹配:HTML 文件头部的 charset 设置与 JavaScript 文件头部的 charset 不一致。如果 HTML 文件是以 UTF-8 编码保存的,而 JavaScript 文件是以 GB2312 编码保存的,则在运行 JavaScript …

    JavaScript 2023年5月19日
    00
  • JavaScript的ExtJS框架中表格的编写教程

    下面是JavaScript的ExtJS框架中表格的编写教程的完整攻略。 1. 概述 JavaScript的ExtJS框架提供了丰富的表格组件,能够满足各种需求。本攻略将详细介绍如何在ExtJS中编写表格组件。 2. 表格的基本结构 表格组件由表头和表格数据两部分组成。表头定义表格列的名称和宽度,表格数据为表格中实际展示的数据。 3. 表头的编写 表头的编写需…

    JavaScript 2023年6月10日
    00
  • Three.js+React制作3D梦中海岛效果

    下面我将详细讲解“Three.js+React制作3D梦中海岛效果”的完整攻略。 简介 Three.js是一款JavaScript 3D库,它可以为我们简化3D场景的创建和管理。React是一款流行的JavaScript库,它可以让我们更容易地构建用户界面。将这两个库结合起来,我们可以更加高效的创建3D界面。 在本攻略中,我们将使用Three.js和Reac…

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