示例打字动画

自定义打字动画效果的示例。

定时器类型

setTimeout 模式

<MarkdownTyper 
  interval={100}
  timerType="setTimeout"
>
  内容...
</MarkdownTyper>

requestAnimationFrame 模式(推荐)

<MarkdownTyper 
  interval={5}
  timerType="requestAnimationFrame"
>
  内容...
</MarkdownTyper>

动态速度曲线

// 开始快,结束慢
<MarkdownTyper 
  interval={{
    min: 10,
    max: 100,
    curve: 'ease-out'
  }}
>
  内容...
</MarkdownTyper>
 
// 开始慢,结束快
<MarkdownTyper 
  interval={{
    min: 10,
    max: 100,
    curve: 'ease-in'
  }}
>
  内容...
</MarkdownTyper>
 
// 自定义曲线
<MarkdownTyper 
  interval={{
    min: 10,
    max: 100,
    curveFn: (x) => Math.sin(x * Math.PI) * 50 + 50
  }}
>
  内容...
</MarkdownTyper>

禁用动画

const [disable, setDisable] = useState(false);
 
<MarkdownTyper disableTyping={disable}>
  内容会立即显示,无动画
</MarkdownTyper>

手动控制

const ref = useRef<MarkdownTyperRef>(null);
 
<>
  <button onClick={() => ref.current?.start()}>开始</button>
  <button onClick={() => ref.current?.stop()}>暂停</button>
  <button onClick={() => ref.current?.resume()}>继续</button>
  <button onClick={() => ref.current?.restart()}>重新开始</button>
  
  <MarkdownTyper 
    ref={ref}
    autoStartTyping={false}
    interval={30}
  >
    内容...
  </MarkdownTyper>
</>