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

Framer Motion文字揭露动画无法运行,请求排查代码问题

问题分析与修复

你的文字 stagger 动画失效的核心原因是子元素的 motion.span 未指定 initial 和 animate 属性——Framer Motion 需要明确绑定变体状态才能触发动画,父元素的时序控制(delayChildren、staggerChildren)已配置,但子元素没有对应的状态触发逻辑。

修复后的代码

import { motion } from "framer-motion";

const banner = {
  animate: {
    transition: {
      delayChildren: 0.4,
      staggerChildren: 0.1,
    },
  },
};

const letterAni = {
  initial: { y: 400 },
  animate: {
    y: 0,
    transition: {
      ease: [0.6, 0.01, -0.05, 0.95],
      duration: 1,
    },
  },
};

const AnimatedLetters = ({ title }) => (
  <motion.span
    className="row-title"
    variants={banner}
    initial="initial"
    animate="animate"
  >
    {[...title].map((letter, i) => (
      // 为子元素添加 initial 和 animate 属性,绑定变体状态
      <motion.span 
        className="row-letter" 
        variants={letterAni} 
        initial="initial" 
        animate="animate"
        key={i}
      >
        {letter}
      </motion.span>
    ))}
  </motion.span>
);

export default function TestFramer() {
  return (
    <div className="text-9xl">
      <AnimatedLetters title="title" />
    </div>
  );
}

额外优化提示

  • 父元素本身无动画需求时,可移除 initial="initial"(banner 变体未定义 initial 状态,默认无动画),仅保留 animate="animate" 即可触发子元素时序控制。
  • 确保 .row-letter 为行内块级元素(添加 CSS display: inline-block),否则行内元素的 y 轴位移可能表现异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:30:45