js实现获取鼠标当前的位置

yizhihongxing

获取鼠标当前位置是开发中常需要用到的功能之一。JavaScript可以轻松实现该操作。以下是获取鼠标当前位置的完整攻略。

获取鼠标当前位置的方式

常用的方式是利用鼠标移动事件,不断获取鼠标当前位置的横纵坐标。可以用鼠标移动事件mousemove来实现。

实现代码

下面是一个基本的 JavaScript 实现:

document.addEventListener('mousemove', function(e) {
  console.log('X轴坐标:', e.clientX, 'Y轴坐标:', e.clientY);
});

代码说明:

  1. document 绑定了 mousemove 事件,该事件在鼠标移动时会触发
  2. 回调函数中,使用 console.log() 打印出鼠标当前位置的横纵坐标

示例1:鼠标位置跟随

下面的示例展示了如何利用上述方法,让一个图片跟随鼠标移动。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>鼠标位置跟随</title>
  <style>
    #box {
      position: relative;
      height: 300px;
      width: 500px;
      margin: 100px auto;
    }
    #image {
      position: absolute;
      top: 0;
      left: 0;
    }
  </style>
</head>
<body>
  <div id="box">
    <img id="image" src="image.png" alt="Image">
  </div>
  <script>
    var image = document.getElementById('image');
    document.addEventListener('mousemove', function(e) {
      var x = e.clientX;
      var y = e.clientY;
      var box = document.getElementById('box');
      var boxX = box.offsetLeft;
      var boxY = box.offsetTop;
      var imageX = x - boxX;
      var imageY = y - boxY;
      image.style.left = imageX + 'px';
      image.style.top = imageY + 'px';
    });
  </script>
</body>
</html>

示例代码说明:

  1. mousemove 事件被绑定在 document
  2. 获取鼠标当前位置的横纵坐标
  3. 获取图片所在父元素(盒子)的左上角位置,计算出图片相对于盒子的位置
  4. 将图片位置设置为相对于盒子的位置

示例2:鼠标位置划线

下面的示例展示了如何利用上述方法,获取鼠标轨迹,绘制轨迹图形。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>鼠标位置划线</title>
  <style>
    #box {
      height: 300px;
      width: 500px;
      margin: 100px auto;
      border: 1px solid #ccc;
      position: relative;
    }
    #canvas {
      position: absolute;
      top: 0;
      left: 0;
    }
  </style>
</head>
<body>
  <div id="box">
    <canvas id="canvas"></canvas>
  </div>
  <script>
    var canvas = document.getElementById('canvas');
    var ctx = canvas.getContext('2d');
    var box = document.getElementById('box');
    canvas.width = box.clientWidth;
    canvas.height = box.clientHeight;
    var isDrawing = false;
    document.addEventListener('mousemove', function(e) {
      if (isDrawing) {
        ctx.lineTo(e.clientX - canvas.offsetLeft, e.clientY - canvas.offsetTop);
        ctx.stroke();
      }
    });
    canvas.addEventListener('mousedown', function(e) {
      isDrawing = true;
      ctx.moveTo(e.clientX - canvas.offsetLeft, e.clientY - canvas.offsetTop);      
    });
    canvas.addEventListener('mouseup', function(e) {
      isDrawing = false;
    });
  </script>
</body>
</html>

示例代码说明:

  1. mousemove 事件被绑定在 document
  2. 获取鼠标当前位置的横纵坐标
  3. 绘制起点和终点之间的相连线
  4. mousedownmouseup 事件用来控制画线动作的开始和结束

结论

使用 JavaScript 获取鼠标当前位置非常简单。只要理解了获取鼠标当前位置的方式,利用JavaScript就能实现各种各样的效果,比如跟随、绘制等等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现获取鼠标当前的位置 - Python技术站

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

相关文章

  • JavaScript 中如何实现大文件并行下载

    在 JavaScript 中实现大文件并行下载的过程中,我们可以采用以下步骤: 确定文件大小并分段下载 首先我们需要确定要下载的文件的总大小,以此作为参考分段下载文件。可以使用 XMLHttpRequest 中的 content-length 属性获取文件大小。 接着我们通过 Math.ceil(totalSize / segmentSize) 得出需要分成…

    JavaScript 2023年5月27日
    00
  • JavaScript基本的输出和嵌入式写法教程

    JavaScript基本的输出和嵌入式写法教程 简介 JavaScript 是一种脚本语言,广泛应用于 Web 开发中。在这篇教程中,我们将讲解 JavaScript 的基本输出和嵌入式写法,以帮助初学者理解 JavaScript 中的语法规则。 输出 JavaScript 在 JavaScript 中,可以使用 console.log() 函数来输出内容。…

    JavaScript 2023年5月18日
    00
  • JavaScript高级程序设计 读书笔记之十一 内置对象Global

    JavaScript高级程序设计 读书笔记之十一 内置对象Global 什么是全局作用域 在JavaScript中,全局作用域是整个程序的最高层次。全局变量会成为全局作用域的属性,全局函数会成为全局作用域的方法。在全局作用域中定义的变量和函数,在整个程序范围内都是可用的。 Global对象简介 Global是JavaScript中的一个全局对象,它不是构造函…

    JavaScript 2023年5月27日
    00
  • JavaScript 使用正则表达式进行表单验证的示例代码

    表单验证是 web 开发中非常常见的需求。在 JavaScript 中使用正则表达式可以快速地进行表单验证。下面是使用正则表达式进行表单验证的示例代码。 具体步骤 第一步:获取表单元素和表单的值 在进行表单验证之前,需要获取表单元素以及表单元素的值。可以使用document.querySelector方法获取元素,使用value属性获取元素值。 const …

    JavaScript 2023年6月10日
    00
  • JS与C#编码解码

    JS和C#都内置了编码和解码的功能,并提供了多种编码和解码方式。下面我将具体讲解JS和C#中的编码和解码,并提供两个示例来演示编码和解码的过程。 JS中的编码和解码 在JS中,我们通常使用encodeURI和encodeURIComponent来对URL进行编码,使用decodeURI和decodeURIComponent对URL进行解码。下面是具体的使用方…

    JavaScript 2023年5月20日
    00
  • javascript中全局对象的parseInt()方法使用介绍

    关于 JavaScript 的全局对象之一,parseInt() 方法是很常用的,现在我来具体介绍一下它的使用。 什么是 parseInt() 方法 在 JavaScript 中,parseInt() 方法是一种解析字符串并返回整数的全局方法。它的常用形式为 parseInt(string, radix),其中 string 是被解析的字符串,radix 是…

    JavaScript 2023年5月27日
    00
  • 实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码

    让我来详细讲解一下 “实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码”的完整攻略。 1. 简介 本文将教您如何使用 HTML5 Canvas 绘制炫酷的烟花绽放动画。烟花中的每个小点都是由一颗小小的圆组成,我们将使用 Canvas 绘制这些小圆,然后使用动画效果让它们绽放。在本文中,我们将使用 JavaScript 和 Canvas API …

    JavaScript 2023年6月11日
    00
  • Javascript valueOf 方法

    以下是关于JavaScript valueOf方法的完整攻略。 JavaScript valueOf方法 JavaScript valueOf方法是所有JavaScript对象的一个方法,用于返回对象的原始值。对于Number对象,方法返回对象的原数字值。 下面是一个使用valueOf方法的示例: var num = new Number(123); con…

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