当前位置:首页 > 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实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback)…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previ…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…