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, utils } 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>