Ich habe versucht, einen animierten Schreib/Lösch-Effekt zu erstellen. Es tippt, aber wenn es den ersten Satz beendet, macht es nichts anderes. Es scheint, dass es in der allerersten if-Anweisung stecken geblieben ist.Animierte Eingabe in nativem JavaScript
window.onload =() => {
const sentences = ['Who am I?', 'Who are you?', 'Who are we?'];
const input = document.getElementsByName('q')[0];
let sentence = 0;
let character = 0;
let typing = true;
(function typing() {
if (character === sentences[sentence].length - 1) {
typing = false;
} else if (character === 0) {
if (sentence < sentences.length - 1) {
sentence++;
} else {
sentence = 0
}
typing = true;
}
if (typing) {
character++;
} else {
character--;
}
input.placeholder = sentences[sentence].substring(0, character);
setTimeout(typing, ~~(Math.random() * (300 - 60 + 1) + 60));
})();
};
Verwenden Sie unterschiedliche Namen für die Funktion und die Variable 'typing', sonst außer Kraft setzen Sie die Funktion mit' Typisierung = true | false' – webdeb
Nur neugierig, warum Sie manchmal mit 'var' und manchmal "lassen"? – gcampbell
Es ist ein Fehler. Ich wollte für die ersten beiden Variablen 'const' anstelle von' var' verwenden. – Jamgreen