当前位置:首页 > JavaScript

js实现mousemove

2026-02-02 02:50:16JavaScript

监听 mousemove 事件

在 JavaScript 中,可以通过 addEventListener 方法监听 mousemove 事件。该事件会在鼠标指针移动时触发。

document.addEventListener('mousemove', function(event) {
  console.log('鼠标位置:', event.clientX, event.clientY);
});

获取鼠标坐标

mousemove 事件对象包含多个属性可以获取鼠标位置信息:

js实现mousemove

  • clientX / clientY:相对于浏览器窗口可视区域的坐标
  • pageX / pageY:相对于整个文档的坐标(包含滚动偏移)
  • screenX / screenY:相对于屏幕物理分辨率的坐标
element.addEventListener('mousemove', (e) => {
  console.log('窗口坐标:', e.clientX, e.clientY);
  console.log('文档坐标:', e.pageX, e.pageY); 
  console.log('屏幕坐标:', e.screenX, e.screenY);
});

性能优化

频繁触发的 mousemove 事件可能导致性能问题,可以通过节流(throttle)技术优化:

js实现mousemove

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

const optimizedHandler = throttle((e) => {
  console.log('节流处理:', e.clientX);
}, 100);

document.addEventListener('mousemove', optimizedHandler);

应用示例:元素跟随鼠标

实现一个元素跟随鼠标移动的效果:

const follower = document.getElementById('follower');

document.addEventListener('mousemove', (e) => {
  follower.style.transform = `translate(${e.clientX}px, ${e.clientY}px)`;
});

移除事件监听

当不再需要监听时,应该移除事件处理器:

const handler = function(e) {
  console.log(e.clientX);
};

// 添加监听
document.addEventListener('mousemove', handler);

// 移除监听 
document.removeEventListener('mousemove', handler);

标签: jsmousemove
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…