chars

定义字符是否以及如何被拆分。
通过 TextSplit 实例的 chars 属性返回的数组来访问拆分的字符元素。

const { chars } = splitText(target, { chars: true });

默认分割封装器

默认情况下,每个字符都被封装在一个带有以下样式和数据属性的 span 元素中:

<span style="display: inline-block;" data-line="0" data-word="0" data-char="0">H</span>
<span style="display: inline-block;" data-line="0" data-word="0" data-char="1">E</span>
<span style="display: inline-block;" data-line="0" data-word="0" data-char="2">Y</span>

自定义拆分封装器

可以通过传递一个包含 拆分参数对象,或者通过传递一个自定义的 HTML 模板 字符串来配置拆分封装器。

在按行拆分时为字符添加动画

每次行拆分都会覆盖现有的字符元素,这会导致一旦字体加载完成或每次文本元素调整大小时,正在运行的字符动画停止。
split.addEffect() 方法中声明动画可以确保在调整大小时持续播放,并在使用 split.revert()时自动恢复。

const split = splitText(target, params);

split.addEffect(({ lines, words, chars }) => animate([lines, words, chars], {
  opacity: { from: 0 },
}));

split.revert(); // This also reverts the animation declared with addEffect

接受

默认

false

字符代码示例

import { animate, splitText, stagger } from 'animejs';

const { chars } = splitText('p', {
  chars: { wrap: 'clip' },
});

animate(chars, {
  y: [
    { to: ['100%', '0%'] },
    { to: '-100%', delay: 750, ease: 'in(3)' }
  ],
  duration: 750,
  ease: 'out(3)',
  delay: stagger(50),
  loop: true,
});
<div class="large centered row">
  <p class="text-xl">Split text by chars.<br>文字ごとに分割します。</p>
</div>
<div class="small row"></div>