当前位置:首页 > JavaScript

js实现跟随

2026-02-02 04:54:51JavaScript

实现元素跟随鼠标移动

使用JavaScript实现元素跟随鼠标移动可以通过监听鼠标移动事件并更新元素的位置来实现。以下是具体实现方法:

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

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

添加平滑过渡效果

为了让跟随效果更加自然,可以添加CSS过渡效果:

js实现跟随

#follower {
    position: absolute;
    width: 20px;
    height: 20px;
    background-color: red;
    border-radius: 50%;
    transition: transform 0.1s ease-out;
    transform: translate(-50%, -50%);
}

更新JavaScript代码使用transform实现更流畅的动画:

js实现跟随

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

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

实现延迟跟随效果

如果需要实现有一定延迟的跟随效果(类似尾巴效果),可以使用以下方法:

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

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

function animate() {
    posX += (mouseX - posX) / 10;
    posY += (mouseY - posY) / 10;

    follower.style.transform = `translate(${posX}px, ${posY}px)`;

    requestAnimationFrame(animate);
}

animate();

实现多个跟随元素

如果需要实现多个元素跟随鼠标,且每个元素有不同延迟:

const followers = document.querySelectorAll('.follower');
let mouseX = 0, mouseY = 0;

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

function animate() {
    let x = mouseX;
    let y = mouseY;

    followers.forEach((follower, index) => {
        const delayFactor = (index + 1) * 5;
        x += (mouseX - x) / delayFactor;
        y += (mouseY - y) / delayFactor;

        follower.style.transform = `translate(${x}px, ${y}px)`;
    });

    requestAnimationFrame(animate);
}

animate();

注意事项

  • 确保跟随元素设置了position: absoluteposition: fixed
  • 使用transform属性进行移动比直接修改left/top性能更好
  • 对于复杂的跟随效果,可以考虑使用GSAP等动画库
  • 移动端设备需要额外处理触摸事件

标签: js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现拖拽

js实现拖拽

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

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…