TextAnimate 文本入场动画
TextAnimate 用于为文本提供按词 / 按字符 / 按行的入场动画,常用于 AI 回答的「优雅出现」效果。底层为纯 CSS 动画 + IntersectionObserver,不依赖 framer-motion。
何时使用
- 智能体回答出现时希望有「优雅入场」而非生硬一次渲染
- 希望在视口可见时再触发动画
- 希望按字符 / 按词 / 按行控制入场粒度
与 TypingAnimation 的区别:
TypingAnimation是逐字打字机效果(可循环、可删除),TextAnimate是整段一次性入场(每段元素以错峰 stagger 同时入场)。
代码演示
API
TextAnimateProps
所有
React.HTMLAttributes<HTMLElement>上的属性(除children)也会透传到底层元素。
行为说明
- stagger 节奏:默认情况下每个 segment 的延迟为
delay + i * (duration / segments.length);自定义variants时按拆分粒度的预设步长(character: 30ms, word/line/text/mix: 50–60ms)执行。 startOnView:默认仅在元素至少 50% 可见时触发动画;如果希望立即播放可设startOnView={false}。once:默认false,元素离开视口后再次进入会重新触发;如果希望只播放一次设为true。- 无障碍:当
accessible为true且children是字符串时,容器会带上aria-label,每个 segmentaria-hidden,避免读屏器逐字读出。
