You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现背景随鼠标光标位置改变移动效果

实现鼠标跟随的文字移动效果

嘿,我来帮你搞定这个鼠标光标控制元素移动的效果!核心思路就是监听页面的鼠标移动事件,实时计算并更新文字的位置,下面是完整的可落地方案,你可以直接拿去用:

1. 基础HTML结构

先搭好最基本的页面框架,我们需要一个全屏容器和要移动的文字元素:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>鼠标跟随效果</title>
</head>
<body>
    <div class="container">
        <span class="moving-text">我是会跟着鼠标动的文字</span>
    </div>
</body>
</html>

2. CSS样式设置

给页面和元素做基础样式配置,确保容器占满全屏,文字初始定位合理:

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
.container {
    width: 100vw;
    height: 100vh;
    position: relative;
    background-color: #f0f0f0;
}
.moving-text {
    position: absolute;
    font-size: 24px;
    font-weight: bold;
    color: #333;
    /* 初始位置随便设,后续会被JS覆盖 */
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: transform 0.1s ease; /* 加缓动让移动更丝滑 */
}

3. JavaScript核心逻辑实现

监听鼠标移动事件,获取鼠标坐标后更新文字位置,还可以加个小偏移让效果更自然:

const movingText = document.querySelector('.moving-text');
const container = document.querySelector('.container');

container.addEventListener('mousemove', (e) => {
    // 获取鼠标在容器内的相对坐标
    const mouseX = e.clientX;
    const mouseY = e.clientY;
    
    // 计算文字位置,可调整偏移值让文字和鼠标保持距离
    const textX = mouseX - 50;
    const textY = mouseY - 20;
    
    // 用transform更新位置比直接改top/left性能更好
    movingText.style.transform = `translate(${textX}px, ${textY}px)`;
});

额外优化:柔化追随效果

如果觉得移动太生硬,可以改成渐进式位置更新,让文字有“慢慢追上鼠标”的柔和感:

let currentX = 0;
let currentY = 0;
let targetX = 0;
let targetY = 0;

container.addEventListener('mousemove', (e) => {
    targetX = e.clientX - 50;
    targetY = e.clientY - 20;
});

// 用requestAnimationFrame实现平滑动画
function animate() {
    // 每次移动10%的距离,数值越小,追随越慢、效果越柔和
    currentX += (targetX - currentX) * 0.1;
    currentY += (targetY - currentY) * 0.1;
    
    movingText.style.transform = `translate(${currentX}px, ${currentY}px)`;
    requestAnimationFrame(animate);
}

// 启动动画
animate();

后续替换成图片的说明

等你要换成图片时,只需要把<span class="moving-text">...</span>换成<img class="moving-text" src="你的图片路径" alt="描述文字">就行,CSS和JS的逻辑完全不用改,直接复用就好!

内容的提问来源于stack exchange,提问作者Daniel Martinez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:45:51