js Event对象的5种坐标

JS Event对象包含5种不同的坐标属性,它们可以用来描述事件的发生位置,这些坐标属性分别是:

  1. clientX和clientY
  2. pageX和pageY
  3. screenX和screenY
  4. offsetX和offsetY
  5. x和y

下面就逐一介绍这5种坐标属性的含义和使用方法:

1. clientX和clientY

clientX和clientY属性用来获取事件的触发点相对于浏览器窗口可视区域左上角的坐标值。例如下面这个例子:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>clientX和clientY示例</title>
  <style>
    #box {
      width: 200px;
      height: 200px;
      background-color: yellow;
    }
  </style>
  <script>
    window.onload = function() {
      document.getElementById('box').addEventListener('click', function(e) {
        console.log('clientX: ' + e.clientX + ', clientY: ' + e.clientY);
      });
    };
  </script>
</head>
<body>
  <div id="box"></div>
</body>
</html>

当点击黄色的方块时,控制台会输出当前鼠标相对于浏览器窗口可视区域左上角的坐标值。

2. pageX和pageY

pageX和pageY属性用来获取事件的触发点相对于文档左上角的坐标值。例如下面这个例子:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>pageX和pageY示例</title>
  <style>
    #box {
      width: 200px;
      height: 200px;
      background-color: yellow;
    }
  </style>
  <script>
    window.onload = function() {
      document.getElementById('box').addEventListener('click', function(e) {
        console.log('pageX: ' + e.pageX + ', pageY: ' + e.pageY);
      });
    };
  </script>
</head>
<body>
  <div id="box"></div>
</body>
</html>

当点击黄色的方块时,控制台会输出当前鼠标相对于文档左上角的坐标值。

3. screenX和screenY

screenX和screenY属性用来获取事件的触发点相对于屏幕左上角的坐标值。例如下面这个例子:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>screenX和screenY示例</title>
  <style>
    #box {
      width: 200px;
      height: 200px;
      background-color: yellow;
    }
  </style>
  <script>
    window.onload = function() {
      document.getElementById('box').addEventListener('click', function(e) {
        console.log('screenX: ' + e.screenX + ', screenY: ' + e.screenY);
      });
    };
  </script>
</head>
<body>
  <div id="box"></div>
</body>
</html>

当点击黄色的方块时,控制台会输出当前鼠标相对于屏幕左上角的坐标值。

4. offsetX和offsetY

offsetX和offsetY属性用来获取事件的触发点相对于事件源元素的左上角的坐标值。例如下面这个例子:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>offsetX和offsetY示例</title>
  <style>
    #box {
      position: relative;
      width: 200px;
      height: 200px;
      background-color: yellow;
    }
    #inner-box {
      position: absolute;
      top: 50px;
      left: 50px;
      width: 100px;
      height: 100px;
      background-color: blue;
    }
  </style>
  <script>
    window.onload = function() {
      document.getElementById('box').addEventListener('click', function(e) {
        console.log('offsetX: ' + e.offsetX + ', offsetY: ' + e.offsetY);
      });
    };
  </script>
</head>
<body>
  <div id="box">
    <div id="inner-box"></div>
  </div>
</body>
</html>

当在蓝色的方块内部点击时,控制台会输出当前鼠标相对于蓝色方块左上角的坐标值。

5. x和y

x和y属性是IE浏览器专属的属性,用来获取事件的触发点相对于文档左上角的坐标值。在其它浏览器中,可以用pageX和pageY代替。例如下面这个例子:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>x和y示例</title>
  <style>
    #box {
      width: 200px;
      height: 200px;
      background-color: yellow;
    }
  </style>
  <script>
    window.onload = function() {
      document.getElementById('box').addEventListener('click', function(e) {
        console.log('x: ' + (e.x || e.pageX) + ', y: ' + (e.y || e.pageY));
      });
    };
  </script>
</head>
<body>
  <div id="box"></div>
</body>
</html>

不同浏览器表现不一,有的使用x和y属性,有的使用pageX和pageY属性,需要根据实际情况做出调整。

以上就是JS Event对象的5种坐标的详细讲解和两条示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js Event对象的5种坐标 - Python技术站

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

相关文章

  • 详解JavaScript操作HTML DOM的基本方式

    让我来详细讲解一下“详解JavaScript操作HTML DOM的基本方式”的完整攻略。 HTML DOM是什么 在开始说明JavaScript操作HTML DOM的基本方式之前,我们先来了解一下HTML DOM是什么。HTML DOM(文档对象模型)是指把HTML文档当作一个树形结构,在JS中可以用DOM API访问和操作这个树形结构,这样就可以改变HTM…

    JavaScript 2023年6月10日
    00
  • JavaScript函数及其prototype详解

    标题:JavaScript函数及其prototype详解 1. 函数基础知识 JavaScript中的函数是一等公民,也是最重要的核心语言特性之一。函数有以下定义形式: function functionName(arguments){ //函数体 return returnValue; } 其中,functionName是函数名,arguments是函数的…

    JavaScript 2023年5月18日
    00
  • js实现创建删除html元素小结

    下面就为你详细讲解 js 实现创建删除 HTML 元素的完整攻略。 1. 使用 createElement() 函数创建 HTML 元素 要创建新的 HTML 元素,需要使用 JavaScript 中的 createElement() 函数。该函数接收一个参数,指定新创建元素的类型。可以根据需要给新元素设置属性和内容,最后将其添加到文档中。 例如,下面的 J…

    JavaScript 2023年6月10日
    00
  • 在页面加载之后执行JavaScript

    在页面加载之后执行JavaScript通常包括以下两种情况: 在DOMContentLoaded事件触发之后执行JavaScript代码 DOMContentLoaded事件在文档结构已经加载完成,但是加载的所有资源(例如图片)还没有完成的时候触发。可以使用addEventListener()方法监听DOMContentLoaded事件,并在回调函数中执行J…

    JavaScript 2023年6月11日
    00
  • javascript ajax获取信息功能代码

    接下来我将详细讲解“JavaScript AJAX获取信息功能代码”的完整攻略。在学习 AJAX 前,需要先理解一下 AJAX 的概念:AJAX 即 Asynchronous JavaScript and XML,使用 AJAX 技术可以在不重新加载整个网页的情况下,实现与服务器端的异步数据交互和局部刷新。 在下面的攻略中,我们将使用纯 JavaScript…

    JavaScript 2023年6月11日
    00
  • JavaScript的for循环中嵌套一个点击事件的问题解决

    JavaScript中的for循环常常被用来遍历一个数据集合中的元素,但是在处理一些特殊场景下,我们需要在循环中嵌套一个点击事件,来对每个元素绑定一个点击事件,实现与该元素相关的操作。这时候,就会面临一些问题,比如嵌套点击事件的作用域问题、如何传入循环变量等。下面是解决这个问题的完整攻略。 问题描述 在JavaScript的for循环中嵌套一个点击事件,绑定…

    JavaScript 2023年5月27日
    00
  • jsp+ajax发送GET请求的方法

    当需要在JSP页面中使用ajax发送GET请求时,可以参照以下步骤进行操作: 步骤一:引入jQuery库文件 使用ajax发送请求时需要引入jQuery库文件。可以在head标签中使用以下代码引入: <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js&quot…

    JavaScript 2023年6月11日
    00
  • js中eval方法详解之eval方法的初级应用

    JS中eval方法详解之eval方法的初级应用 什么是eval方法? eval方法是JavaScript的内置函数,可以用来执行一个JavaScript字符串。eval函数只接受一个参数,即要执行的JavaScript字符串。eval会将接收到的字符串当做JavaScript代码执行,并返回最后一个语句的执行结果。 eval方法的使用场景 因为eval方法可…

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