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

React中Framer Motion whileHover内animate不生效问题求助

解决Framer Motion whileHover中x动画不生效的问题

嘿,我一眼就看出问题所在啦!你在whileHover的配置里多套了一层animate对象——这完全没必要,而且正是导致x动画不生效的原因!

Framer Motion的whileHover属性本身就直接接受你想要触发的动画属性,嵌套animate的话框架根本识别不到这部分配置,所以你的x: 500完全没起作用,而scale因为是直接写在顶层才正常生效了。

修正后的代码

import { motion } from "framer-motion";

<motion.div 
  className="heart-overlay" 
  whileHover={{ 
    x: 500,  // 直接把x属性放在顶层配置里
    scale: 1.2, 
    transition: { ease: "easeOut", duration: 2 } 
  }}
>
  <div className="heart-top">
    <Img className="heart-default" src={heart_default_top} />
  </div>
  <div className="heart-bot">
    <Img className="heart-default" src={heart_default_bot} />
  </div>
</motion.div>

补充说明

像whileHover、whileTap这类交互触发的动画属性,都是直接传入你要修改的样式属性(比如x、y、scale、opacity等)和过渡配置就行,不需要额外嵌套animate。只有当你使用animate prop定义初始/主动画,或者在variants里组织动画集合时,才会用到animate相关的嵌套结构哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 16:17:52