当前位置:首页 > JavaScript

js实现鼠标滑动

2026-01-30 14:54:08JavaScript

鼠标滑动效果实现方法

基础鼠标跟随效果

通过监听mousemove事件获取鼠标坐标,并更新元素位置:

document.addEventListener('mousemove', (e) => {
  const follower = document.getElementById('follower');
  follower.style.left = `${e.clientX}px`;
  follower.style.top = `${e.clientY}px`;
});

平滑跟随动画

使用CSS过渡或requestAnimationFrame实现平滑移动:

js实现鼠标滑动

let posX = 0, posY = 0;
const follower = document.getElementById('follower');

function animate() {
  const diffX = posX - follower.offsetLeft;
  const diffY = posY - follower.offsetTop;

  follower.style.left = `${follower.offsetLeft + diffX * 0.1}px`;
  follower.style.top = `${follower.offsetTop + diffY * 0.1}px`;

  requestAnimationFrame(animate);
}

document.addEventListener('mousemove', (e) => {
  posX = e.clientX;
  posY = e.clientY;
});

animate();

轨迹记录与回放

存储鼠标坐标并实现轨迹回放:

const points = [];
let isRecording = false;

document.addEventListener('mousemove', (e) => {
  if (isRecording) {
    points.push({ x: e.clientX, y: e.clientY });
  }
});

function replay() {
  let index = 0;
  const interval = setInterval(() => {
    if (index >= points.length) {
      clearInterval(interval);
      return;
    }
    follower.style.left = `${points[index].x}px`;
    follower.style.top = `${points[index].y}px`;
    index++;
  }, 16);
}

视觉特效增强

添加拖尾效果和粒子动画:

js实现鼠标滑动

document.addEventListener('mousemove', (e) => {
  const particle = document.createElement('div');
  particle.className = 'particle';
  particle.style.left = `${e.clientX}px`;
  particle.style.top = `${e.clientY}px`;
  document.body.appendChild(particle);

  setTimeout(() => {
    particle.remove();
  }, 1000);
});

性能优化建议

避免频繁的DOM操作,使用transform属性代替top/left:

follower.style.transform = `translate(${e.clientX}px, ${e.clientY}px)`;

考虑使用事件节流减少处理频率:

let lastTime = 0;
document.addEventListener('mousemove', (e) => {
  const now = Date.now();
  if (now - lastTime > 16) {
    updatePosition(e);
    lastTime = now;
  }
});

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

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…