在成帧器运动中为 scaleX 设置动画而不影响儿童的比例

时间:2021-05-10 20:22:24

标签: javascript framer-motion

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>
 );
};

1 个答案:

答案 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

相关问题