delay
delay
是 setTimeout
的替代方案,它锁定在 Motion 的动画帧循环中.
这可以帮助同步回调与其他动画,并避免设置大量 setTimeout
的开销。
用法
从 Motion 导入 delay
。
import { delay } from "motion"
延迟回调
传递回调函数和持续时间(以秒为单位)给 delay
。回调将在该持续时间后的下一个动画帧中触发。
delay(() => console.log("one second!"), 1)
取消
delay
返回一个函数,当调用该函数时,将取消延迟。
const cancel = delay(callback, 0.25) cancel() // callback will never fire
动画循环
delay
在 Motion 的第一个步骤中触发其回调动画循环,即 read
步骤。
因此,我们可以使用 frame
将读取和写入与循环的其余部分批量处理。
import { delay, frame } from "motion" delay(() => { const { left } = element.getBoundingClientRect() // Will render later during this animation frame frame.render(() => { element.style.left = `${left * 2}px` }) }, 1)
delay
是 setTimeout
的替代方案,它锁定在 Motion 的动画帧循环中.
这可以帮助同步回调与其他动画,并避免设置大量 setTimeout
的开销。
用法
从 Motion 导入 delay
。
import { delay } from "motion"
延迟回调
传递回调函数和持续时间(以秒为单位)给 delay
。回调将在该持续时间后的下一个动画帧中触发。
delay(() => console.log("one second!"), 1)
取消
delay
返回一个函数,当调用该函数时,将取消延迟。
const cancel = delay(callback, 0.25) cancel() // callback will never fire
动画循环
delay
在 Motion 的第一个步骤中触发其回调动画循环,即 read
步骤。
因此,我们可以使用 frame
将读取和写入与循环的其余部分批量处理。
import { delay, frame } from "motion" delay(() => { const { left } = element.getBoundingClientRect() // Will render later during this animation frame frame.render(() => { element.style.left = `${left * 2}px` }) }, 1)
delay
是 setTimeout
的替代方案,它锁定在 Motion 的动画帧循环中.
这可以帮助同步回调与其他动画,并避免设置大量 setTimeout
的开销。
用法
从 Motion 导入 delay
。
import { delay } from "motion"
延迟回调
传递回调函数和持续时间(以秒为单位)给 delay
。回调将在该持续时间后的下一个动画帧中触发。
delay(() => console.log("one second!"), 1)
取消
delay
返回一个函数,当调用该函数时,将取消延迟。
const cancel = delay(callback, 0.25) cancel() // callback will never fire
动画循环
delay
在 Motion 的第一个步骤中触发其回调动画循环,即 read
步骤。
因此,我们可以使用 frame
将读取和写入与循环的其余部分批量处理。
import { delay, frame } from "motion" delay(() => { const { left } = element.getBoundingClientRect() // Will render later during this animation frame frame.render(() => { element.style.left = `${left * 2}px` }) }, 1)