Задержка запуска JS пишущей машинки - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь отложить запуск машинки JavaScript. Я добавил OFF_MS, но он, кажется, только задерживает начало между текстовыми строками, которые он пишет. Я также пытался задержать все JavaScript, но это не сработает. Кто-нибудь знает, как отложить начало первой строки? Спасибо (:

var TxtType = function(el, toRotate, period) {
    this.toRotate = toRotate;
    this.el = el;
    this.loopNum = 0;
    this.period = parseInt(period, 10) || 2000;
    this.txt = '';
    this.tick();
    this.isDeleting = false;
};


TxtType.prototype.tick = function() {
    var i = this.loopNum % this.toRotate.length;
    var fullTxt = this.toRotate[i];

    if (this.isDeleting) {
    this.txt = fullTxt.substring(0, this.txt.length - 1);
    } else {
    this.txt = fullTxt.substring(0, this.txt.length + 1);
    }

    this.el.innerHTML = '<span class="wrap">'+this.txt+'</span>';

    var that = this;
    var delta = 155 - Math.random() * 100;

    if (this.isDeleting) { delta /= 2; }

    if (!this.isDeleting && this.txt === fullTxt) {
    delta = this.period;
    this.isDeleting = false;
    } else if (this.isDeleting && this.txt === '') {
    this.isDeleting = false;
    this.loopNum++;
    delta = 500;
    }

    setTimeout(function() {
    that.tick();
    }, delta);
};


window.onload = function() {
var OFFSET_MS = 5000;
var elements = document.getElementsByClassName('typewrite');
for (var i=0; i<elements.length; i++) {

    var toRotate = elements[i].getAttribute('data-type');
    var period = elements[i].getAttribute('data-period');
    if (toRotate) {

        window.setTimeout(((index) => () => {
            new TxtType(elements[index], JSON.parse(toRotate), period);
                        console.log(index);
        })(i), i * OFFSET_MS);
    }
}
};
var css = document.createElement("style");
    css.type = "text/css";
    css.innerHTML = ".typewrite > .wrap { border-right: 0px solid #fff}";
    document.body.appendChild(css);

var newString=oldString.replace(/\n/g,"<br />");

};
...