Text area [Résolu]

Signaler
Messages postés
233
Date d'inscription
vendredi 2 juillet 2004
Statut
Membre
Dernière intervention
4 janvier 2007
-
Messages postés
233
Date d'inscription
vendredi 2 juillet 2004
Statut
Membre
Dernière intervention
4 janvier 2007
-
J'ai trouvé ce script sur le site : le webmestre.
Il affiche un texte avec effet dans un text area.
Seulement, il est infini, est-il possible de définir un nombre d'affichage maximum ?

<HTML>
<HEAD>
<script language="JavaScript">
var max=0;
function textlist() {
max=textlist.arguments.length;
for (i=0; i<max; i++) //lwf
this[i]=textlist.arguments[i];
}

// Cette liste peu être augmentée
tl = new textlist(
"message 1"
);

var x = 0;
pos = 0;
var l = tl[0].length;
function textticker() {
document.tickform.tickfield.value = tl[x].substring(0, pos) + "_";
if(pos++ == l) {
pos = 0; //lwf
setTimeout("textticker()", 2000); if(++x max) x 0;
l = tl[x].length;
} else
setTimeout("textticker()", 50);
}
</script>
</HEAD>

<form name="tickform">
<textarea name="tickfield" rows="3" cols="38" style="background-color: burlywood; color: black; cursor: default; font-family: Arial; font-size: 12px" wrap="virtual">
Les news apparaissent ici, une fois que la page est chargée.
</textarea>
</form>

</HTML>

5 réponses

Messages postés
290
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
25 avril 2008

Je suis de bonne humeur alors voila :

<HTML>
<HEAD>
<script language="JavaScript">
var max=0;
function textlist() {
max=textlist.arguments.length;
for (i=0; i<max; i++) //lwf
this[i]=textlist.arguments[i];
}

// Cette liste peu être augmentée
tl = new textlist( 
"message 1"
);
compteur =0; // la variable compteur	  

var x = 0;
pos = 0;
var l = tl[0].length;
function textticker() {
document.tickform.tickfield.value = tl[x].substring(0, pos) + "_";
if(pos++ == l) {
pos = 0; //lwf
montimer=setTimeout("textticker()", 2000); 
if(++x == max) {
   x = 0; 
l = tl[x].length;  
compteur++; // incrementation de la variable
if (compteur==3){ // test du nombre de fois
compteur=0;
clearTimeout(montimer);
}
}
} else {
montimer=setTimeout("textticker()", 50);
}
}		 

</script> 
</HEAD>

<form name="tickform">
<textarea name="tickfield" rows="3" cols="38" style="background-color: burlywood; color: black; cursor: default; font-family: Arial; font-size: 12px" wrap="virtual">
Les news apparaissent ici, une fois que la page est chargée.
</textarea>
</form>

</HTML> 
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,
c'est setTimeout("textticker()", 2000);
qui relance l'affichage.
donc => mettre une variable globale que
l'on incrémente "à chaque tour" et ne
faire appel à textticker que si cette
variable n'a pas atteint le nombre maxi
d'affichages voulu.
Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
Messages postés
290
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
25 avril 2008

Sans aucun problème, tu insères une variable compteur incrémentée après if(++x == max) x = 0; Ca compte alors le nombre de fois que la phrase est écrite.
tu testes ta variable avec un If et quand tu le décides, tu stoppes le timer (clearTimeout)
Messages postés
233
Date d'inscription
vendredi 2 juillet 2004
Statut
Membre
Dernière intervention
4 janvier 2007

Merci.

Mais je suis encore débutant, pouvez vous me modifier mon script en mettant l'affichage 3 fois par exemple ?
Messages postés
233
Date d'inscription
vendredi 2 juillet 2004
Statut
Membre
Dernière intervention
4 janvier 2007

Super, merci