有什么方法可以强制成帧器运动使用宽度而不是变换?

Any way to force framer motion to use use width instead of transforms?

当我使用 css 为 div 的宽度设置动画时,它看起来很整洁。动画控制得很好,一切都很好。但是对于 framer motion,我的动画有时会出现故障。我很确定这是因为它使用了转换。 所以我想知道是否有一种方法可以让 framer motion 仅操纵 width 属性 而没有其他...?

是的,您可以为文档中未提及的许多属性设置动画。

  <MotionBox
    animate={{
      height: isBig ? 150 : 100,
      width: isBig ? 150 : 100
    }}
  />

他们不推送动画宽度和高度的原因可以解释 here

TLDR:设置宽度和高度动画会导致 CPU 密集的回流,而转换属性不会导致回流并由您的 GPU 优化,因此转换属性受到青睐。

如果你想看到这个工作,我做了一个工作代码沙箱: https://codesandbox.io/s/framer-motion-animate-width-and-height-mqcxv?file=/src/index.js