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

Astro项目集成Framer Motion问题:React组件已渲染但动画失效

解决Framer Motion在Astro React组件中动画不生效的问题

你的代码本身没有问题,动画不生效的核心原因是Astro默认会静态渲染React组件,不加载客户端JavaScript,而Framer Motion的动画逻辑需要在客户端运行才能触发。

解决步骤:

  • 在Astro页面中引用Card1组件时,添加客户端 hydration 指令,比如client:load(页面加载时立即加载组件的客户端JS):

    ---
    import Card1 from '../components/Card1';
    ---
    
    <Card1 client:load />
    

    也可以根据场景选择其他指令:

    • client:visible:组件进入视口时加载客户端JS,适合首屏外的组件
    • client:idle:浏览器空闲时加载,不影响首屏性能
  • 确保依赖已正确安装(若未安装):

    npm install framer-motion @astrojs/react
    

添加完 hydration 指令后,Framer Motion的animate属性就能正常触发动画了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 19:41:58