11548 sujets

JavaScript, DOM et API Web HTML5

bonjour à tous.

je suis en cours d'elaboration de mon portfolio, provisoirement sur cette adresse :
www.chdup.fr/portfolio

Je rencontre un souci sur la page presentation / identité.
je souhaite faire apparaitre les informations de la colonne de droite avec un effet de "machine à ecrire"

voici ma function "machine"
	function machine(){
		var max=0;
		function textlist()
		{
				max=textlist.arguments.length;
				for (i=0; i<max; i++)
						this[i]=textlist.arguments[i];
		}
		
		tl=new textlist
		(
				"Bienvenue",
				"hello tous",
				"test"
		);
		
		var x=0; pos=0;
		var l=tl[0].length;
		
		function textticker() 
		{        
				document.form_identite.entrees.value=tl[x].substring(0,pos)+"_";
		
				if(pos++==l)
				{
						pos=0;
						setTimeout("textticker()",5000);
						x++;
						if(x==max)
								x=0;
						l=tl[x].length;
				} else
						setTimeout("textticker()",50);
		}
		textticker();
	};


je debute en JS , et j'ai récupéré la majeure partie de ce code sur le net.
ce code fonctionne bien sur une page HTML simple.
par contre, dans mon cas, associé à ce code HTML :
                            <div class="colonne_droite">

					            <form name="form_identite">
                                    <input type="text" name="entrees" class="entrees">
                          		</form>
		                	</div>


j'ai seulement le underscore qui s'affiche. Le texte ne s'affiche pas Smiley ohwell
une piste pour que je m'en sorte ?
merci[/i][/i]
Modifié par ChDUP (19 Jun 2010 - 11:41)
j'ai modifié mon JS afin d'utiliser les boucles.
	function machine(){
				
		var tableau = ["bonjour", "salut", "machin"];
		var elemIdx = 0;
		var caractere = 0;
		
		for (elemIdx; elemIdx<tableau.length; elemIdx++) {
			caractere=0;
			for (caractere; caractere<tableau[elemIdx].length; caractere++) {
				document.form_identite.entrees.value += tableau[elemIdx].substr(caractere, 1);
			};
		};
	};


mon texte s'affiche bien maintenant. Mais 2 problèmes subsistent :
- je n'ai plus de délai entre l'affichage des caracteres, je n'arrive pas à inserer correctement un setTimeout la-dedans.
- comment puis-je imposer un retour à la ligne entre chaque éléments du tableau ?

merci!