在Framer-motion中,父元素和子元素之间,是可以产生联动的变化的。
我们之前在学些variants这个属性的时候讲过,通过父元素和子元素传入同名的的状态对象,那么父元素执行相应状态名的变化,子元素也会跟着变化,比如下面这个代码:
我们没有给子元素设置任何的animate或者其他方式让他启动变化,但是你会发现子元素会自动启动变化,这个就是通过variants属性实现的父子联动的机制,但是这个机制看起来很死板,父元素开始变化,子元素就马上同步变化。
但是其实,在实现父子联动的时候,我们可以在父元素的transition中设置一些属性,来让这个父子联动的变化效果,变得更加可控和可调节。
delayChildren
子元素延迟时长,作用于所有子元素
|
数字类型
when
决定父级元素是在什么时间点开始执行并完成自己的变化
1 - false 默认值,如果没有设置子元素的延迟,就是同时发生变化
2 - "beforeChildren"
当父元素完成变化之后,子元素才会开始变化
3 - "afterChildren"
当子元素完成变化之后,父元素才会开始变化
staggerChildren
子元素依次启动延迟
|
数字类型
以上这些就是父子联动的动画效果我们可以设置的几个属性。