Problème setTimeOut en javascript
katsuo49
Messages postés
362
Statut
Membre
-
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
script.js
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.
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.
A voir également:
- Problème setTimeOut en javascript
- Telecharger javascript - Télécharger - Langages
- Afficher un tableau javascript en html ✓ - Forum Javascript
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
- Javascript arrondi - Forum Javascript
- Javascript arrondi après la virgule ✓ - Forum Windows
2 réponses
essayes ca:
setTimeout("lettreHidden( "+elementLettre+" )", 400);
function lettreHidden( lettre ) {
lettre.style.visibility = "hidden";
return false;
}
bye
setTimeout("lettreHidden( "+elementLettre+" )", 400);
function lettreHidden( lettre ) {
lettre.style.visibility = "hidden";
return false;
}
bye
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
J'ai essayé aussi sans la boucle for en mettant seulement la modification hidden->visible mais sans résultat non plus.
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.