当前位置:首页 > JavaScript

js实现鼠标移动

2026-04-04 03:15:55JavaScript

监听鼠标移动事件

使用 mousemove 事件监听鼠标移动,通过回调函数获取鼠标的坐标信息(clientXclientY)。

document.addEventListener('mousemove', (event) => {
  const x = event.clientX;
  const y = event.clientY;
  console.log(`鼠标位置:X=${x}, Y=${y}`);
});

实时显示鼠标坐标

在页面上动态更新鼠标坐标的显示,例如通过一个 <div> 元素。

js实现鼠标移动

const coordDisplay = document.createElement('div');
coordDisplay.style.position = 'fixed';
coordDisplay.style.bottom = '10px';
coordDisplay.style.right = '10px';
document.body.appendChild(coordDisplay);

document.addEventListener('mousemove', (event) => {
  coordDisplay.textContent = `X: ${event.clientX}, Y: ${event.clientY}`;
});

跟随鼠标移动的元素

创建一个元素(如圆形或图标),使其跟随鼠标移动。

const follower = document.createElement('div');
follower.style.width = '20px';
follower.style.height = '20px';
follower.style.backgroundColor = 'red';
follower.style.borderRadius = '50%';
follower.style.position = 'fixed';
follower.style.pointerEvents = 'none'; // 防止遮挡点击事件
document.body.appendChild(follower);

document.addEventListener('mousemove', (event) => {
  follower.style.left = `${event.clientX - 10}px`;
  follower.style.top = `${event.clientY - 10}px`;
});

限制移动范围

通过逻辑判断限制鼠标移动的响应范围,例如仅在特定区域内触发。

js实现鼠标移动

const boundary = { minX: 100, maxX: 500, minY: 100, maxY: 500 };

document.addEventListener('mousemove', (event) => {
  const x = Math.max(boundary.minX, Math.min(event.clientX, boundary.maxX));
  const y = Math.max(boundary.minY, Math.min(event.clientY, boundary.maxY));
  console.log(`限制后坐标:X=${x}, Y=${y}`);
});

性能优化

使用防抖(debounce)或节流(throttle)减少事件触发频率,避免高频更新导致的性能问题。

function throttle(callback, delay) {
  let lastCall = 0;
  return function(...args) {
    const now = new Date().getTime();
    if (now - lastCall >= delay) {
      callback(...args);
      lastCall = now;
    }
  };
}

document.addEventListener('mousemove', throttle((event) => {
  console.log(`节流坐标:X=${event.clientX}, Y=${event.clientY}`);
}, 100));

兼容性处理

检查浏览器是否支持 mousemove 事件,并提供备用方案(如触摸事件)。

if ('onmousemove' in window) {
  document.addEventListener('mousemove', handleMove);
} else {
  console.warn('mousemove 事件不支持');
}

标签: 鼠标js
分享给朋友:

相关文章

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js 实现拖拽

js 实现拖拽

实现拖拽的基本步骤 在JavaScript中实现拖拽功能需要监听几个关键事件:mousedown、mousemove和mouseup。以下是实现的基本逻辑。 监听目标元素的mousedown事件,记…