refresh()

根据参数变化,手动再次分割文本。

const split = splitText(target);

split.html = 'Some new text to split';

split.refresh();

可以安全手动更新的属性有:

名称 描述
$target 分割元素 (HTMLElement)
html 要分割的 html (String)
调试 定义调试样式是否可见 (Boolean)
包含空格 定义文本中的空格是否应被包裹 (Boolean)
可访问性 定义是否应创建可访问的克隆元素 (Boolean)
lineTemplate 行的 html 模板 (String)
wordTemplate 词的 html 模板 (String)
charTemplate 字符的 html 模板 (String)

返回

TextSplitter

refresh() 代码示例

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

const [ $add, $remove ] = utils.$('button');
const [ $p ] = utils.$('p');

const split = splitText('p', {
  lines: { wrap: 'clip' },
  debug: true,
});

split.addEffect((self) => animate(self.words, {
  y: ['0%', '75%'],
  loop: true,
  alternate: true,
  ease: 'inOutQuad',
  delay: stagger(150)
}));

const words = ['sit', 'amet', 'consectetur', 'adipiscing', 'elit', 'tortor', 'lectus', 'aliquet'];

const addRandomWord = () => {
  split.html += ' ' + utils.randomPick(words);
  split.refresh();
}

const removeRandomWord = () => {
  const words = split.words.map(w => w.innerHTML);
  split.html = (words.splice(utils.random(0, words.length - 1), 1), words).join(' ');
  split.refresh();
}

$add.addEventListener('click', addRandomWord);
$remove.addEventListener('click', removeRandomWord);
<div class="large centered row">
  <p class="text-xl">Lorem ipsum dolor</p>
</div>
<div class="medium row">
  <fieldset class="controls">
    <button>Add word</button>
    <button>Remove word</button>
  </fieldset>
</div>