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日

相关文章

  • 在线FLV播放器实现方法

    实现在线FLV播放器一般需要借助HTML5中的视频标签(video tag)以及相关的JavaScript播放控制,以下是一些具体的步骤和示例说明: 1. 准备FLV文件 要在浏览器中播放FLV文件,首先需要找到可在线播放的FLV视频文件,并将其上传至服务器。 2. 编写HTML代码 接下来需要在网页中添加video标签,示例如下: <video wi…

    JavaScript 2023年6月11日
    00
  • JavaScript用select实现日期控件

    下面是使用JavaScript的select标签实现日期控件的攻略: 1. 准备工作 首先,我们需要在HTML中定义一个日期选择器的容器,以及年、月、日三个select标签来分别展示年、月、日的选择菜单。我们先来看一下HTML代码: <div id="datePicker"> <select id="yearS…

    JavaScript 2023年6月11日
    00
  • JavaScript中undefined和is not defined的区别与异常处理

    JavaScript中undefined与is not defined的区别与异常处理攻略 在JavaScript编程中,我们可能会遇到两种情况:一个是使用undefined变量,一个是使用未定义的变量(is not defined)。虽然在表象上看起来很相似,但实际上它们是不同的,并且需要不同的处理方法。在这篇攻略中,我将向您展示它们的区别,以及如何在代码…

    JavaScript 2023年5月18日
    00
  • js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】

    当网页中所有的元素都被加载之后,我们可以使用JS中的文档就绪函数来动态改变页面内容。其中,innerHTML和innerText是两个用于改变元素内容的函数。下面详细介绍如何使用这两个函数实现动态改变页面内容的效果。 1. 文档就绪函数 JavaScript提供了两种文档就绪函数: window.onload: 当整个页面(包括图片、样式文件等)都加载完毕之…

    JavaScript 2023年6月10日
    00
  • JS中捕获console.log()输出的方法

    JavaScript中,我们可以使用console.log()来输出日志信息,但是如果想要将console.log()输出的内容捕获到程序中进行处理,该怎么做呢? 以下是JS中捕获console.log()输出的方法的完整攻略: 一、使用console.log重定义 首先,我们可以通过重定义console.log()方法来将输出内容重定向到我们所定义的另一个…

    JavaScript 2023年5月28日
    00
  • srcElement表格样式

    srcElement 表示事件源对象,即触发该事件的元素。通过该属性,我们可以对事件源对象执行一些操作,比如修改元素的样式等。 在表格中,我们可以利用该属性来修改表格的样式,下面提供两个示例说明。 示例一:通过鼠标悬浮事件修改表格行背景色 <table> <tr> <th>姓名</th> <th>年…

    JavaScript 2023年6月10日
    00
  • IE8 原生JSON支持

    IE8 原生 JSON 支持是指 Internet Explorer 8(IE8)浏览器中自带了对 JSON 数据格式的支持。在 IE8 之前的版本中,如果要使用 JSON 格式的数据,需要引入第三方库来解析或者手写解析函数。而在 IE8 中,开发者可以直接使用浏览器提供的全局对象 JSON 来解析和序列化 JSON 格式的数据,无需引入其他库。 为了使用 …

    JavaScript 2023年5月27日
    00
  • javascript学习笔记(三)显示当时时间的代码

    下面是关于“javascript学习笔记(三)显示当时时间的代码”的完整攻略。 前置知识 在学习本文之前,你需要掌握以下知识: HTML 基础 CSS 基础 Javascript 语法基础 确定功能 在开始编写代码之前,我们需要确定显示当前时间的具体功能。 我们要实现的功能是:在页面上显示当前的时间,并且能够实时更新。 编写代码 HTML结构 在HTML中,…

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