Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2119 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] Temporisation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JS] Temporisation

n°617989
sebkom
Come and get it !
Posté le 21-01-2004 à 15:42:44  profilanswer
 

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.  :sweat:  
 
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 ).  [:razorbak83]  
 
-Comment est-ce que je peux faire pour avoir une tempo efficace ?  :??:
 
Merci d'avance pour votre aide.  :jap:

mood
Publicité
Posté le 21-01-2004 à 15:42:44  profilanswer
 

n°618219
antsite
Je me souviens
Posté le 21-01-2004 à 17:15:40  profilanswer
 

setTimeout(), et je vois pas comment ça scroll ton code (horrible au passage, getElementById, balises en miniscules, tu connais ?)

n°618361
sebkom
Come and get it !
Posté le 21-01-2004 à 20:26:15  profilanswer
 

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  :??: [:superboulay]  
 
Sinon bah ça scroll pas vraiment mais ça donne une impression de scroll ( si si !  :D ) 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.  [:razorbak83]  
 
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>
 <BODY BGCOLOR="#000000" TEXT="#FFFFFF"><center>
  <font face="arial" size="6">SCROLLER</FONT><BR>
   <font face="arial" size="2">
   <FORM NAME="TEXTE">
    <INPUT TYPE="BUTTON" NAME="AFF" VALUE="START SCROLL" onclick="go();"><INPUT TYPE="TEXT" SIZE="30" NAME="PHRASE" VALUE="Coucou !!">
    <INPUT TYPE="BUTTON" NAME="STP" VALUE="STOP SCROLL" onclick="stop_ca();"><BR>
    Vitesse :
    <INPUT TYPE="BUTTON" NAME="INC" VALUE="+" onclick="javascript:increment();">
    <INPUT TYPE="TEXT" NAME="VIT" VALUE="150" size="3">
    <INPUT TYPE="BUTTON" NAME="DEC" VALUE="-" onclick="javascript:decrement();">
   </FORM>
  </font>
  <script language="javascript">
   function increment()
    {
    if(eval(document.TEXTE.elements.VIT.value) > 25)
     {
     document.TEXTE.elements.VIT.value=eval(document.TEXTE.elements.VIT.value)-25;}
     }
   function decrement()
    {
    if(eval(document.TEXTE.elements.VIT.value) < 500)
     {
      document.TEXTE.elements.VIT.value=eval(document.TEXTE.elements.VIT.value)+25;}
     }    
   function scroll()
    {
    chaine=document.TEXTE.elements.PHRASE.value;
    premchar=chaine.charAt(0);
    chaine=chaine.substring(1,longueur)+premchar;
    document.TEXTE.elements.PHRASE.value=chaine;
    a = setTimeout("scroll()",eval(document.TEXTE.elements.VIT.value));
    }
   function go()
    {
    document.TEXTE.elements.PHRASE.value=(document.TEXTE.elements.PHRASE.value+" " );
    longueur=eval(document.TEXTE.elements.PHRASE.value.length);
    var a;
    setTimeout("scroll()",eval(document.TEXTE.elements.VIT.value));
    }
   function stop_ca()
    {
       window.clearTimeout(a);
    }
  </script>
 </BODY>
</HTML>


testé sous IE uniquement, c'est crade mais ça marche.  :whistle:  
 
Merci Antsite pour ton aide.


Message édité par sebkom le 21-01-2004 à 22:44:52
n°633754
Vinny_the_​true
Posté le 06-02-2004 à 17:26:34  profilanswer
 

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 !


Message édité par Vinny_the_true le 06-02-2004 à 17:28:43

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] Temporisation

 

Sujets relatifs
[Boulet]Temporisation?temporisation en Javascript avec setTimeout bizzare non??
[Windev] Fonction de pause ou temporisation ??[PHP] temporisation
PHP : Comment faire une temporisation 
Plus de sujets relatifs à : [JS] Temporisation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR