有什么方法可以强制成帧器运动使用宽度而不是变换?
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
当我使用 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