所以几天前我刚刚学习了成帧器运动,现在我遇到了第一个障碍。我只是在为容器和按钮设置动画,直到我偶然发现以下问题:
我试图用以下变体为 div 容器设置动画:
const containerVariant = {
hover: {
rotateZ: [0, 3, -3, 0],
transition: {
yoyo: Infinity,
}
}
};
以及具有以下变体的 Button:
const btnHoverVariant = {
hidden: {
scale: 1,
opacity: 1,
transition: {
type: "tween",
duration: 0.25,
ease: "easeInOut"
}
},
hov: {
scale: 1.1,
opacity: 0.8,
transition: {
type: "tween",
duration: 0.25,
ease: "easeInOut"
}
}
};
我的问题是,当我将鼠标悬停在容器上时它可以工作(摆动效果),但是当我将鼠标悬停在按钮上时,按钮悬停效果(缩放效果)它不起作用。
我确实找到了解决这个问题的方法,即对 whileHover、transition 和 initial props 使用对象语法。但是对于代码模块化,我想使用变体,所以如果有人可以帮助我解决我的问题,将不胜感激!这是解决方法的一个片段:
<motion.button
initial="{{ scale: 1, opacity: 1 }}"
whileHover={{ scale: 1.1, opacity: 0.8 }}
transition={{ type: "tween", duration: 0.25, ease: "easeInOut" }}
style={btnStyle}
>
Click Me!
</motion.button>
以下是上述两种情况的代码沙箱:https ://codesandbox.io/s/stoic-diffie-0m2mp?file=/src/test.jsx