[英]Framer Motion , can we stagger items only on enter, but simultaneously exit them?
我们使用 Framer Motion 和下面的一些代码来制作交错动画。 问题是,我们只想错开项目,而不是错开。 有什么方法可以指定特定于initial
和exit
的交错行为,而不是我们现在用来定义交错的顶级transition
属性?
我认为我们可以实现这个指定的“变体”,但是否有可能不添加额外的代码和复杂性?
<AnimatePresence exitBeforeEnter>
{items.map((item, i) => (
<motion.div
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0 }}
transition={{ duration: 1, delay: i * 1 }}>
{item}
</motion.div>
))}
</AnimatePresence>
在 v7.2 中已弃用 mode="wait" 的 exitBeforeEnter
<AnimatePresence mode="wait">
{items.map((item, i) => (
<motion.div
key={item.id}
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0, transition: { duration: 0.5 } }}
transition={{ duration: 1, delay: i * 1 }}>
{item}
</motion.div>
))}
</AnimatePresence>
您可以为exit
道具指定不同的过渡:
<AnimatePresence exitBeforeEnter>
{items.map((item, i) => (
<motion.div
key={item.id} // don't forget the key!!!
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0, transition: { duration: 0.5 } }}
transition={{ duration: 1, delay: i * 1 }}>
{item}
</motion.div>
))}
</AnimatePresence>
您的其他动画将继续使用来自transition
道具的默认过渡。
另外,不要忘记为每个元素添加一个唯一的key
,否则您的退出动画将不起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.