3 分钟学会!波浪文字动画超详细教程,从 0 到 1 实现「思考中 / 加载中」高级效果

前言:为什么要学波浪文字动画?

经常在 AI 聊天框、APP 加载页看到那种文字跟着波浪闪的效果,明明只是简单的亮暗变化,但是感觉瞬间让页面有了呼吸感。

思路

  1. 把一句话拆成单个文字(比如 "思考中..." 拆成 "思""考""中"".""."".")
  2. 给每个文字加 "亮→暗→亮" 的基础动画
  3. 给每个文字设置递增的延迟时间(第 1 个 0 秒开始,第 2 个 0.1 秒,第 3 个 0.2 秒......)

代码实现

HTML

html 复制代码
<div id="waveTextContainer">
  <!-- 每个字符一个span,延迟依次加0.1秒 -->
  <span class="wave-char" style="animation-delay: 0s">思</span>
  <span class="wave-char" style="animation-delay: 0.1s">考</span>
  <span class="wave-char" style="animation-delay: 0.2s">中</span>
  <span class="wave-char" style="animation-delay: 0.3s">.</span>
  <span class="wave-char" style="animation-delay: 0.4s">.</span>
  <span class="wave-char" style="animation-delay: 0.5s">.</span>
</div>

CSS

CSS 复制代码
/* 单个字符的基础样式 */
.wave-char {
    opacity: 0.3;           /* 平时是暗的(30%透明度) */
    color: #333;            /* 暗态颜色(深灰) */
    font-size: 18px;       
    display: inline-block; 
    /* 动画:名字 时长 缓动效果 无限循环 */
    animation: waveAnimation 2s ease-in-out infinite;
}

/* 定义"亮→暗→亮"的动画过程 */
@keyframes waveAnimation {
    0% {
        opacity: 0.3;       /* 开始:暗态 */
        color: #333;
    }
    50% {
        opacity: 1;         /* 中间:完全亮(100%透明度) */
        color: #0084ff;    
    }
    100% {
        opacity: 0.3;       /* 结束:回到暗态,循环 */
        color: #333;
    }
}

JavaScript

javascript 复制代码
// 目标:传入文字,自动生成波浪动画
function createWaveText(text) {
    // 1. 拿到容器
    const container = document.getElementById('waveTextContainer');
    // 2. 先清空容器(避免重复添加)
    container.innerHTML = '';
    // 3. 把文字拆成单个字符的数组
    const charList = text.split('');
    
    // 4. 遍历每个字符,生成span
    charList.forEach((char, index) => {
        const span = document.createElement('span');
        span.textContent = char === ' ' ? '\u00A0' : char;
        // 加样式类
        span.className = 'wave-char';
        // 关键:延迟时间 = 索引 * 0.1秒
        span.style.animationDelay = `${index * 0.1}s`;
        // 把span放进容器
        container.appendChild(span);
    });
}

// 调用函数
createWaveText('思考中...');
相关推荐
未来之窗软件服务16 小时前
未来之窗昭和仙君(六十五)Vue与跨地区多部门开发—东方仙盟练气
前端·javascript·vue.js·仙盟创梦ide·东方仙盟·昭和仙君
嘿起屁儿整17 小时前
面试点(网络层面)
前端·网络
VT.馒头17 小时前
【力扣】2721. 并行执行异步函数
前端·javascript·算法·leetcode·typescript
phltxy18 小时前
Vue 核心特性实战指南:指令、样式绑定、计算属性与侦听器
前端·javascript·vue.js
Byron070719 小时前
Vue 中使用 Tiptap 富文本编辑器的完整指南
前端·javascript·vue.js
css趣多多19 小时前
地图快速上手
前端
zhengfei61119 小时前
面向攻击性安全专业人员的一体化浏览器扩展程序[特殊字符]
前端·chrome·safari
码丁_11719 小时前
为什么前端需要做优化?
前端
Mr Xu_20 小时前
告别硬编码:前端项目中配置驱动的实战优化指南
前端·javascript·数据结构
Byron070720 小时前
从 0 到 1 搭建 Vue 前端工程化体系:提效、提质、降本实战落地
前端·javascript·vue.js