just-animate
Version:
_Making Animation Simple_
47 lines (46 loc) • 1.49 kB
JavaScript
function element(innerHTML) {
const el = document.createElement('div');
el.setAttribute('style', 'display:inline-block;position:relative;text-align:start');
el.innerHTML = innerHTML || '';
return el;
}
export function splitText(target) {
const characters = [];
const words = [];
const elements = typeof target === 'string'
? document.querySelectorAll(target)
: target instanceof Element
? [target]
: typeof target.length === 'number'
? target
: [];
for (let i = 0, ilen = elements.length; i < ilen; i++) {
var e = elements[i];
if (!e) {
continue;
}
var contents = e.textContent.replace(/[\r\n\s\t]+/gi, ' ').trim();
e.innerHTML = '';
var ws = contents.split(/[\s]+/gi);
for (let x = 0, xlen = ws.length; x < xlen; x++) {
var w = ws[x];
if (!w) {
continue;
}
if (x > 0) {
var empty = element(' ');
e.appendChild(empty);
}
var word = element();
words.push(word);
e.appendChild(word);
for (let y = 0, ylen = w.length; y < ylen; y++) {
var c = w[y];
var character = element(c);
word.appendChild(character);
characters.push(character);
}
}
}
return { characters, words };
}