文档

文档

JavaScript

delay

delay

delaysetTimeout 的替代方案,它锁定在 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)

delaysetTimeout 的替代方案,它锁定在 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)

delaysetTimeout 的替代方案,它锁定在 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)
保持关注

订阅以获取最新新闻和更新。

保持关注

订阅以获取最新新闻和更新。