柔和闪烁的关键是控制透明度范围、节奏和缓动:建议 opacity 在0.6–1间变化,周期2–4秒,用ease-in-out缓动,避免全页滥用并适配减少动画偏好。

文字闪烁动画过强,通常是因为透明度变化太剧烈、频率太快,或缺乏缓动过渡。用 @keyframes 配合 opacity 实现柔和闪烁的关键,在于控制变化幅度、节奏和过渡曲线。
降低透明度变化幅度
避免在 0 和 1 之间切换,这会显得刺眼。建议缩小范围,比如在 0.6 到 1 之间渐变:
-
推荐写法:
0% { opacity: 1; } 50% { opacity: 0.7; } 100% { opacity: 1; } - 完全透明(
opacity: 0)容易造成文字“消失感”,干扰可读性 - 若需强调呼吸感,可用
0.8 → 1 → 0.8更自然
延长动画周期并加入缓动
默认的 linear 或过短的 duration(如 0.5s)会让闪烁像频闪灯。应适当拉长并优化时序:
- 动画时长建议设为 2s–4s,例如
animation: breathe 3s ease-in-out infinite; - 使用
ease-in-out让淡入淡出更平滑,比linear更符合视觉惯性 - 避免用
step-start/step-end,它们会造成硬切,失去渐变效果
限制触发场景,避免全局滥用
闪烁本身是高注意力吸引效果,全页面多处同时闪烁会引发视觉疲劳甚至不适:
立即学习“前端免费学习笔记(深入)”;
- 只对关键提示文字(如“正在加载…”、“新消息”角标)启用,非装饰性文本慎用
- 考虑用户偏好:搭配
@media (prefers-reduced-motion: reduce)关闭动画 - 可提供手动开关,例如加一个「停用动画」按钮,用 JS 切换 class 控制
animation-play-state
不复杂但容易忽略——柔和闪烁的本质不是“动得少”,而是“动得准”。调好 opacity 范围、节奏和时机,文字就能既醒目又不伤眼。










