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

获取鼠标当前位置是开发中常需要用到的功能之一。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事件流,我为大家准备了一份完整攻略,一起来学习一下。 什么是JavaScript事件流 JavaScript事件流是指浏览器中发生事件(如鼠标点击、键盘输入等)时,事件在DOM树结构中按照特定顺序发送和处理的过程。这个过程包含三个阶段:捕获阶段、目标阶段和冒泡阶段。 捕获阶段 在事件到达目标元素之前,从根节点到目标元素之间的所有节点都…

    JavaScript 2023年6月10日
    00
  • vue使用axios实现excel文件下载的功能

    下面是使用Vue和Axios实现Excel文件下载的攻略,过程中将会包含两条示例说明。 准备工作 安装依赖:npm install –save axios file-saver xlsx 其中,axios 是我们将用来与后端交互的网络请求库;file-saver 是将文件保存到本地的库;xlsx 将Excel文件转换为二进制格式。 在 main.js 中导…

    JavaScript 2023年6月11日
    00
  • JS实现响应鼠标点击动画渐变弹出层效果代码

    这里为您详细讲解JS实现响应鼠标点击动画渐变弹出层效果的攻略。 实现思路 实现该效果的基本思路是通过 JavaScript 来控制 CSS 样式的变化,从而达到动画渐变弹出层的效果。 具体实现步骤如下:1. 创建一个静态 HTML 页面,包含需要点击的按钮和弹出层。2. 利用 CSS 设置弹出层的初始样式和动画样式。3. 使用 JavaScript 监听按钮…

    JavaScript 2023年6月10日
    00
  • 轻轻松松学习JavaScript

    轻轻松松学习JavaScript 一、前言 JavaScript是Web前端开发的核心技术之一,基本所有现代网站均使用JavaScript进行开发。因此,掌握JavaScript基础是学习Web前端开发的重要第一步。本篇攻略将介绍如何轻松入门学习JavaScript基础知识。 二、学习路线 1. 学习基础语法 学习JavaScript基础语法是入门的第一步。…

    JavaScript 2023年5月18日
    00
  • javascript 在线文本编辑器实现代码

    实现一个 JavaScript 在线文本编辑器的具体思路如下: 创建一个文本输入框,接受用户输入的文本; 创建一个可编辑的文本区域,将用户输入的文本显示在此区域内; 设置文本区域的样式和属性,使之可编辑; 当用户在文本区域中进行编辑操作时,通过 JavaScript 监听用户的输入操作,并实时更新显示内容; 将编辑后的文本内容提交到后台进行保存。 下面是实现…

    JavaScript 2023年6月10日
    00
  • Javascript基础学习笔记(菜鸟必看篇)

    我来讲解一下“Javascript基础学习笔记(菜鸟必看篇)”,这是一篇非常适合初学者的基础教程,内容涵盖了Javascript的基础语法和常用API。 基础语法 在这部分中,笔记介绍了Javascript的数据类型、变量、运算符、条件语句、循环语句等基础语法知识。 其中,有一段代码示例展示了如何使用条件语句来判断一个人的成绩等级: var score = …

    JavaScript 2023年5月18日
    00
  • JS正则表达式修饰符global(/g)用法分析

    JS正则表达式修饰符global(/g)用法分析 什么是正则表达式修饰符global? 正则表达式(Global)是JS中的一个特殊对象,用于在字符串中匹配某个模式。Global修饰符被用来指定正则表达式对象应该匹配所有符合条件的字符串,而不是第一次匹配后就停止查找。Global修饰符以”/g”表示。 如何使用global修饰符 我们可以使用RegExp对象…

    JavaScript 2023年6月10日
    00
  • JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)

    下面是对“JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)”的完整攻略: 1. 介绍 本篇攻略将介绍如何使用JS基于ocanvas插件实现简单画板效果,并附带demo源码下载。ocanvas是HTML5 Canvas的一个扩展库,它提供了更简单、更易用的API,并且可以方便地实现一些高级功能。 2. 前置条件 在开始使用ocanvas前…

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