Framer Motion 4 已贬值 useInvertedScale() 它说要使用 layout 道具,但似乎没有达到相同的效果。 我正在尝试 scaleX 影响孩子规模的父 div 空白。 我的动画还有更多内容,但这是一个简单的细分 父级缩放 X 但子级不应该缩放。
const parentVarent= {
show: {
scaleX: 1,
transition: {
ease: "easeOut",
duration: 3,
},
},
hide: {
scaleX: 0,
},
};
const MyComponent = () => {
return (
<motion.div
animate="show"
variants={parentVarent}
initial="hide"
>
<motion.div variants={parentVarent} layout>
<p>
SOME TEXT TO NOT SACLE
</p>
</motion.div>
</motion.div>
);
};
答案 0 :(得分:0)
好的,在讨论了 framer-motion discord 之后:你不能使用变体或动画道具。
<Container
style={{
width: isBig ? "100%" : "0%",
borderRadius: "15px"
}}
layout
>
<Text />
</Container>
您必须改用样式标签或 CSS。此外,布局道具不是替代品。看起来您无法将宽度一直设置为零,并且布局更像是“从一种尺寸到另一种尺寸”的实用程序。如果您在我的 v4 示例中删除填充,它将不再起作用:/
供参考:
不和谐链接:https://discord.com/channels/341919693348536320/716908973713784904/842083550990958642
这是在 Github 问题中出现的:https://github.com/framer/motion/issues/1145
我在 v2 中创建了一个使用 useInvertedScale()
的工作版本:
https://codesandbox.io/s/framer-motion-layout-scaling-text-in-framer-motion-295-useinvertedscale-ixqln
我在 v4 中创建了一个不在此处的工作版本:https://codesandbox.io/s/framer-motion-layout-scaling-text-in-framer-motion-4-70eb3