Problème setTimeOut en javascript

katsuo49 Messages postés 362 Statut Membre -  
katsuo49 Messages postés 362 Statut Membre -
Bonjour,
je cherche à réaliser un script qui écrit un texte quelconque lettre par lettre, l'efface, écrit le texte lettre par lettre...
J'ai trouvé comment faire pour que le texte s'efface et se réécrive. Je vois comment je dois faire en gros pour que les lettres apparaissent les une après les autres mais mon code n'affiche rien avec les setTimeOut.

index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
   <head>
    <title>ABCDE</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  </head>

 <!-- <body onload="ecrit(5);">
 -->
<body onload="setInterval('ecrit(5)',500);">

<div style="min-wisth:500px;min-height:500px;background:#555">

    <script type="text/javascript" src="script.js"></script>
   

<span id="lettre1" style="visibility:hidden">A</span><span id="lettre2" style="visibility:hidden">B</span>
<span id="lettre3" style="visibility:hidden">C</span>
<span id="lettre4" style="visibility:hidden">D</span>
<span id="lettre5" style="visibility:hidden">E</span>


</div>    


  </body>
</html>


script.js
function ecrit(nblettre)
{

	for(var i=1;i<=nblettre;i++){
			var elementLettre;
			elementLettre = document.getElementById('lettre' + i) ;

					if (elementLettre.style.visibility == 'hidden')
					{
							//setTimeout("elementLettre.style.visibility = 'visible'",100);
							elementLettre.style.visibility = 'visible';
					} else {
							//setTimeout("elementLettre.style.visibility = 'hidden'",100);
							elementLettre.style.visibility = 'hidden';
					}
	}

}


Tel quel le code fait clignoter le texte. Mais si j'enlève les '//' et les mets au ligne sans setTimeOut, plus rien ne s'affiche du tout.

Comment dois-je faire ?
Merci d'avance de prendre du temps pour me répondre.

2 réponses

theworldisbeautiful
 
essayes ca:

setTimeout("lettreHidden( "+elementLettre+" )", 400);


function lettreHidden( lettre ) {
lettre.style.visibility = "hidden";
return false;
}

bye
0
katsuo49 Messages postés 362 Statut Membre 25
 
J'ai modifié vis à vis de ce que tu m'as dit mais ça ne m'affiche plus rien.

voilà ce que j'ai fais :
script.js
function ecrit(nblettre)
{

	for(var i=1;i<=nblettre;i++){
			var elementLettre;
			elementLettre = document.getElementById('lettre' + i) ;
					if (elementLettre.style.visibility == 'hidden')
					{
							//setTimeout("elementLettre.style.visibility = 'visible'",100);
							//elementLettre.style.visibility = 'visible';
							setTimeout("lettreVisible( '+elementLettre+' )", 400);
					} else {
							//setTimeout("elementLettre.style.visibility = 'hidden'",100);
							//elementLettre.style.visibility = 'hidden';
							setTimeout("lettreHidden( '+elementLettre+' )", 400);

					}
	}

}


function lettreHidden( lettre ) {
lettre.style.visibility = "hidden";
return false;
}
function lettreVisible( lettre ) {
lettre.style.visibility = "visible";
return false;
}

J'ai essayé aussi sans la boucle for en mettant seulement la modification hidden->visible mais sans résultat non plus.
0