Current Path : /var/www/www-root/data/www/www.monolith-realty.ru/bitrix/js/ui/textanimate/src/ |
Current File : /var/www/www-root/data/www/www.monolith-realty.ru/bitrix/js/ui/textanimate/src/textanimate.js |
export class TextAnimate { constructor(options) { this.container = options.container; this.interval = options.interval; this.currentText = null; } setInterval(interval) { if(interval) this.interval = interval; } init(text) { text = text.trim(); this.currentText = this.container.innerText; let interval = setInterval( () => { let symbolRnd = parseInt(Math.random() * Math.max(text.length, this.currentText.length)); let symbolLink = text[symbolRnd]; if(typeof symbolLink === 'undefined') symbolLink = ' '; while(this.currentText.length < symbolRnd) this.currentText += ' '; this.currentText = (this.currentText.slice(0,symbolRnd) + symbolLink + this.currentText.slice(symbolRnd + 1)).trim(); this.container.innerText = this.currentText.length === 0 ? ' ' : this.currentText; if(text === this.container.innerText) clearInterval(interval); }, this.interval ? this.interval : 5) } }