当前位置:首页 > 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过渡效果:

#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实现更流畅的动画:

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();

实现多个跟随元素

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

js实现跟随

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 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

js实现图

js实现图

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

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js怎么实现异步

js怎么实现异步

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

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…