Temporisation [JS] - HTML/CSS - Programmation
Marsh Posté le 21-01-2004 à 17:15:40
setTimeout(), et je vois pas comment ça scroll ton code (horrible au passage, getElementById, balises en miniscules, tu connais ?)
Marsh Posté le 21-01-2004 à 20:26:15
antsite a écrit : setTimeout(), et je vois pas comment ça scroll ton code (horrible au passage, getElementById, balises en miniscules, tu connais ?) |
Non justement je connais pas, ça apporte quoi
Sinon bah ça scroll pas vraiment mais ça donne une impression de scroll ( si si ! ) et le seul moyen que j'ai trouvé pour le faire fonctionner c'est de cliquer sur un bouton pour faire défiler la chaine caractère par caractère.
Le
setTimeout() |
je l'ai essayé mais soit je l'ai mal utilisé soit ça fait pas ce que je cherche.
Comment l'utiliser pour répéter une action toutes les x millisecondes ?
EDIT: C'est bon j'ai trouvé une solution, effectivement utiliser setTimeout() mais il faut l'associer à clearTimeout():
Pour ceux que ça interesse :
<HTML> |
testé sous IE uniquement, c'est crade mais ça marche.
Merci Antsite pour ton aide.
Marsh Posté le 06-02-2004 à 17:26:34
Heu, vous vous emmerdez VRAIMENT pour pas grand chose !
var msg="Ici ton message";
var long=msg.length;
function textdefil() {
document.form1.deftext.value=msg.substring(position,position+long);
position++;
if(position == long) position=0;
setTimeout("textdefil()",200);
}
ton texte apparaitra dans l'input (ce qui te permets de piger l'arbre hiérarchique de l'objet ds la fonction) :
<form name="form1">
<div align="center">
<input type="text" font name="deftext" size=30>
</div>
</form>
t'as plus qu^'à mettre ca à ta sauce !
PS: On doit meme pouvoir faire encore plus propre et concis avec des trucs genre modulo, mais je connais que dalle en JS !
Marsh Posté le 21-01-2004 à 15:42:44
Salut à tous,
Je souhaite faire défiler du texte dans une zone "<INPUT TYPE="TEXT">" :
<FORM NAME="TEXTE">
<INPUT TYPE="BUTTON" NAME="AFF" VALUE="SCROLL IT!!!" onclick="scroll();"><INPUT TYPE="TEXT" SIZE="30" NAME="PHRASE" VALUE="TAPEZ VOTRE PHRASE ICI"><BR>
</FORM>
c'est cette fonction qui s'occupe de faire défiler le texte :
<SCRIPT LANGUAGE="JAVASCRIPT">
longueur=document.TEXTE.elements.PHRASE.value.length;
function scroll()
{
chaine=document.TEXTE.elements.PHRASE.value;
premchar=chaine.charAt(0);
chaine=chaine.substring(1,longueur)+premchar;
document.TEXTE.elements.PHRASE.value=chaine;
}
</SCRIPT>
En gros la fonction mémorise puis supprime le premier caractère de la chaine de texte et rajoute ce caractère mémorisé à la fin de la chaine de texte.
Cà fonctionne mais ça fonctionne trop vite (normal), c'est pourquoi je souhaite appliquer une temporisation (normal) mais je sais pas comment m'y prendre.
J'ai essayé de faire un truc de ce style :
while(i<1000)
{
i++
if(i==999)
{
//travail à effectuer
}
}
mais là encore ça va toujours trop vite ( j'ai essayé d'aller jusqu'à 1000000 mais ça change rien ).
-Comment est-ce que je peux faire pour avoir une tempo efficace ?
Merci d'avance pour votre aide.