当前位置:首页 > 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();

实现多个跟随元素

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

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实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现图片轮播

js实现图片轮播

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

js实现全屏

js实现全屏

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

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Pa…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document…