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

 


Dernière réponse
Sujet : javaScript : passer un id en paramatre ?
nicotine si ca marche tant mieux mais c'est vraiment pas limpide

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
nicotine si ca marche tant mieux mais c'est vraiment pas limpide
petoulachi voila ma soltion
...
<style>
div.titre{ position:relative; text-align:left; text-decoration: none; color: #7AADFF; font-family: Arial,helvetica,sans-serif; font-size: 60px; font-weight: bold;}
</style>
...
 
function deplace(id,from, to, moveto)  
{
    id2 = id;
    if (from > to)
 {
     if (navigator.appName == "Netscape" )
  {
      document[id].left = (from -= moveto);
   setTimeout('deplace(id2,' + from + ',' + to + ',' + moveto + ')', 75);
  }
  else
  {
     document.all[id].style.left = (from -= moveto);
        setTimeout('deplace(id2,' + from + ',' + to + ',' + moveto + ')', 75);
  }
 }
}
 
 
// fin du script -->
</script>
</head>
<body onLoad="deplace('team',800,0,20)">
<div id="team" class="titre">The Team</div>
 
 
bizarrement ça marche pas sous netscape 6 ?
nicotine et ca va trop vite pour IE
nicotine et voila :  
<html>
<head>
 
<script language='javascript'>
 
function deplace( id, from )
   {
    var x=from;
    while ( x > 0 )
      {
       if (navigator.appName == "Netscape" )
          document[id].left = x;
       else
          document.all[id].style.pixelLeft = x;
 
       x--;
 
       setTimeout("kedal()",500);
      }
 
   }
 
function kedal()
   { return true; }
 
</script>
</head>
 
<body onload="deplace('texte',600);">
 
<div id='texte' style='position:absolute;left:600;top:50'>
et voici mon texte
</div>
 
 
</body>
</html>
nicotine Maintenant , ils te servent  
 
bon vla un ot'truc et ca marche: seul probleme : ca va trop vite
 
<html>
<head>
 
<script language='javascript'>
 
function deplace( id, from )
   {
    var x=from;
    while ( x > 0 )
      {
       if (navigator.appName == "Netscape" )
          document[id].left = x;
       else
          document.all[id].style.pixelLeft = x;
 
       x--;
      }
 
   }
 
</script>
</head>
 
<body onload="deplace('texte',600);">
 
<div id='texte' style='position:absolute;left:600;top:50'>
et voici mon texte
</div>
 
 
</body>
</html>

 

[edit]--Message édité par nicotine--[/edit]

petoulachi et id2 me sert :
si je fais directement l'appel recursif en mettant id, une erreur de script est généré : id parametre inconnu
je n'ai trouvé que cette solution pour la contourner
petoulachi attends j'avais un mauvais truc dans mon presse papier :
 
function deplace(id,from, to, moveto)  
{
    id2 = id;
    if (from > to)
 {
     document.all[id].style.left = (from -= moveto);
        setTimeout('deplace(id2,' + from + ',' + to + ',' + moveto + ')', 75);
 }
}
function deplaceN(id,from, to, moveto)  
{
    id2 = id;
    if (from > to)
 {
     document[id].left = (from -= moveto);
        setTimeout('deplaceN(id2,' + from + ',' + to + ',' + moveto + ')', 75);
 }
}
voila
et le paramaetre to permet de definir la position d'arrivee ET IL SERT !
nicotine pardon pour le 'to' ...c'est une valeur butoir
autant pour moi
nicotine le parametre 'to' ne sert egalement a rien.
 
il n'est utilisé nulle part !!!!!
nicotine tu y arrives avec id2 ? :D
 
et ca fonctionne ? ;) ;)
 
ton id et id2 ne te servent à RIEN  
 
tu passes id en parametre que tu affectes ensuite a id2 qui est le parametre du settimeout qui va l'affecter dans la nouvelle recursive.
 
ca ne change rien.
petoulachi oua oua oua oua calme !
pourquoi absolute ?
oui je v reduire en une fonction
pourquoi dans onLoad c suspect ? moi je veux juste que mon titre defile qd on a chargé la page, apres il bouge plus. alors je vois pas pourquoi c pas bien dans le onLoad.
au fait j'y arrive maintenant avec l'id :
function deplace(id,from, to, moveto)  
{
    id2 = id;
    if (from > to)
 {
     document.all.texte.style.left = (from -= moveto);
        setTimeout('deplace(id2,' + from + ',' + to + ',' + moveto + ')', 75);
 }
}
function deplaceN(id,from, to, moveto)  
{
    id2 = id;
    if (from > to)
 {
     document.texte.left = (from -= moveto);
        setTimeout('deplaceN(id2,' + from + ',' + to + ',' + moveto + ')', 75);
 }
}
 
// End script -->
</SCRIPT>
</head>
<BODY onLoad="oldNetscape()?deplaceN('texte',600,0,20):deplace('texte',600,0,20)">
<DIV ID="texte" STYLE="text-align:center;font-size:40pt;font-family:Arial;color:#7AADFF;position:relative">The Team</DIV>
nicotine et reduit ca en UNE fonction.
 
et l'appel dans onload est franchement suspect :D
nicotine et ne met pas un settimeout dans ta fonction deplace.
 
met un setInterval avec les memes parametres en dehors d'une fonction.
 
attention : elle se declenchera tout de suite
nicotine position:absolute
petoulachi <SCRIPT LANGUAGE="JavaScript">
<!-- Start script  
 
function oldNetscape()  
{    
    verStr=navigator.appVersion;  
    version = parseFloat(verStr);
    if (navigator.appName == 'Netscape')
 {
     if (version <= 4.7)
  {
            return true;
  }
  else
      {return false;}  
 }
    else
        return false;
}
 
function deplace(from, to, moveto)  
{
    if (from > to)
 {
     document.all.texte.style.left = (from -= moveto);
        setTimeout('deplace(' + from + ',' + to + ',' + moveto + ')', 75);
 }
}
function deplaceN(from, to, moveto)  
{
    if (from > to)
 {
     document.texte.left = (from -= moveto);
        setTimeout('deplaceN(' + from + ',' + to + ',' + moveto + ')', 75);
 }
}
 
// End script -->
</SCRIPT>
</head>
<BODY onLoad="oldNetscape()?deplaceN(600,0,20):deplace(600,0,20)">
<DIV ID="texte" STYLE="text-align:center;font-size:40pt;font-family:Arial;color:#7AADFF;position:relative">The Team</DIV>
 
voila
alors tu ferais comment pour passer l'id en param ?
nicotine et une fonction suffirait !
 
deplace(......)
  {
   if (ie) faire çi
   else    faire ça
  }
nicotine faudrait que je vois le source complet.
 
sous NS : tape 'javascript:'  dans la zone de saisie des urls.
c'est le debugger , on en saura un peu plus.
 
attention toutefois si le script se lance avant le chargement complet de la page.
petoulachi non non ça marche c sur, je l'ai fait pour un.
mais par contre, comment tu fais l'appel ?
moi j'ai essayer:
- deplace('iddutruc',600,0,20) là y me sort une erreur objet
  inatendu pour IE, et sous netscape le texte apparait tres  
  brievement avec de disparaitre
-  ou deplace("id",600,0,20), et là y se passe rien ?
nicotine c'est pas plutot pixelLeft pour IE ?
 
et si 'id' est le parametre de ta fonction deplace :
document.all[id].style.pixelLeft = ......
document[id].left = .......
petoulachi voila j'ai reussi a faire un script qui fait defiler du texte... bref ça on s'en fout.
ce que je voudrai, c pouvoir passer en param l'id de ma <div>, comme ça je pourrai faire ce script generiquement.
ainsi on a :
 
pour IE :
function deplace(id,from, to, moveto)  
{
    document.all.id.style.left = (from -= moveto);
    ....
}
 
pour netscape :
function deplaceN(id,from, to, moveto)  
{
    document.id.left = (from -= moveto);
    ....
}
 
mais ça, ça marche pas. Comment faire ?

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