HTML-Text mit typewrite-Effekt

luke_the_duke

Erfahrenes Mitglied
Hallo,

ich habe folgendes Problem:
Einen HTML-formatierten Text mit einer Blocksatz-Einleitung und einer nachfolgenden Liste setze ich mit einem Typewriter-Skript in ein HTML-Textfeld, d.h. der String wird immer um ein Zeichen erweitert und neu ins Textfeld gesetzt. Bloss wird nun der ganze Text als Liste dargestellt, also auch die Blocksatzeinleitung, obwohl das <li>-Tag erst nach dem Absatz steht. Weise ich den Text normal zu, wird alles richtig dargestellt.
Hat jemand vielleicht eine Idee?

gruss
 
Hi,

Du musst dafür sorgen, dass alle Tags (also auch <ul> und alle <li>s) zu jeder Zeit korrekt geschlossen sind, sonst gibts Durcheinander mit der automatischen Umwandlung.

Hier mal ein zusammengestoppelter Ansatz, den Du Dir sicher in etwas dynamischeres umbauen kannst, wie ich Dich kenne. ;)

Code:
var str = '<p>{ct1}</p><ul><li>{ct2}</li><li>{ct3}</li></ul>';

var ct1 = "Hier kann meinetwegen sonstwas stehen";
var ct1p = 0;
var ct2 = "Erster Punkt";
var ct2p = 0;
var ct3 = "Zweiter Punkt";
var ct3p = 0;

var current = 1;

this.onEnterFrame = function() {
	var s = str;
	s = s.split("{ct1}").join(ct1.substr(0, ct1p));
	s = s.split("{ct2}").join(ct2.substr(0, ct2p));
	s = s.split("{ct3}").join(ct3.substr(0, ct3p));
	tf.htmlText = s;
	this["ct" + current + "p"] ++;
	if (this["ct" + current + "p"] >= this["ct" + current].length) {
		current ++;
		if (current > 3) delete this.onEnterFrame;
	}
}

Gruß
.
 
Heho Tobi,

danke für den tollen Ansatz, habs nicht vergessen, aber ich versauf grade mal wieder in der Arbeit und komme zu gar nichts (Schlaf, kann man das essen? ;)). Sobald ich wieder etwas Luft habe, werd ich das mal umzusetzen versuchen.

gruss
 
Zurück