Saisie d’animation de texte à l’aide de jQuery

J’espère que quelqu’un pourra m’aider avec ça. Je suis un peu nouveau dans jQuery, mais j’essaie de trouver un moyen de créer un effet de texte de frappe animé pour toute une classe div! Une longue recherche sur Google ne m’a donné que de petits plugins, même s’ils sont géniaux … Ils ne font tout simplement pas ce que j’ai besoin d’eux … (ou je n’ai tout simplement pas l’éducation nécessaire pour le configurer) …

Fondamentalement, dès que la page est chargée, il me faut une classe div pré-existante entière dans un bloc HTML (je ne veux pas que le texte soit fourni par le JS) commence à «taper» le texte en tant qu’être humain. serait, en gardant tous les CSS des éléments internes (h1s, h2s, p, spans, etc.) et dans l’ordre qu’ils sont dans le stream de la page.

Ceci est le fichier sur lequel je travaille http://jsfiddle.net/we9d81jf/

var $el = $('.typing'), txt = $el.text(), txtLen = txt.length, timeOut, char = 0; $el.text('|'); (function typeIt() { var humanize = Math.round(Math.random() * (200 - 30)) + 30; timeOut = setTimeout(function() { char++; var type = txt.subssortingng(0, char); $el.text(type + '|'); typeIt(); if (char == txtLen) { $el.text($el.text().slice(0, -1)); // remove the '|' clearTimeout(timeOut); } }, humanize); }()); 

Toute aide serait grandement appréciée!

Vous y êtes presque. Si vous voulez voir les effets des balises HTML, utilisez .html au lieu de .text() . Voici un violon mis à jour.

Pourquoi ne pas utiliser le plugin jQuery tel que Typed.js . Cela fonctionne parfaitement, les ‘<' et '>‘ ne s’afficheront pas. Vous pouvez également vous plonger dans le code source pour savoir comment cela fonctionne.

Ceci est une démo (la chaîne contient
et vous pouvez append une balise pour la tester).