javaScript : passer un id en paramatre ?

javaScript : passer un id en paramatre ? - Programmation

Marsh Posté le 27-04-2001 à 16:57:19    

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 ?

Reply

Marsh Posté le 27-04-2001 à 16:57:19   

Reply

Marsh Posté le 27-04-2001 à 17:01:06    

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 = .......


---------------
Do androïds dream of electric sheep ?
Reply

Marsh Posté le 27-04-2001 à 17:08:21    

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 ?

Reply

Marsh Posté le 27-04-2001 à 17:12:47    

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.


---------------
Do androïds dream of electric sheep ?
Reply

Marsh Posté le 27-04-2001 à 17:14:12    

et une fonction suffirait !
 
deplace(......)
  {
   if (ie) faire çi
   else    faire ça
  }


---------------
Do androïds dream of electric sheep ?
Reply

Marsh Posté le 27-04-2001 à 17:21:31    

<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 ?

Reply

Marsh Posté le 27-04-2001 à 17:26:44    

position:absolute


---------------
Do androïds dream of electric sheep ?
Reply

Marsh Posté le 27-04-2001 à 17:28:10    

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


---------------
Do androïds dream of electric sheep ?
Reply

Marsh Posté le 27-04-2001 à 17:29:03    

et reduit ca en UNE fonction.
 
et l'appel dans onload est franchement suspect :D


---------------
Do androïds dream of electric sheep ?
Reply

Marsh Posté le 27-04-2001 à 17:33:05    

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>

Reply

Marsh Posté le 27-04-2001 à 17:33:05   

Reply

Marsh Posté le 27-04-2001 à 17:36:09    

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.


---------------
Do androïds dream of electric sheep ?
Reply

Marsh Posté le 27-04-2001 à 17:37:15    

le parametre 'to' ne sert egalement a rien.
 
il n'est utilisé nulle part !!!!!


---------------
Do androïds dream of electric sheep ?
Reply

Marsh Posté le 27-04-2001 à 17:40:13    

pardon pour le 'to' ...c'est une valeur butoir
autant pour moi


---------------
Do androïds dream of electric sheep ?
Reply

Marsh Posté le 27-04-2001 à 17:40:22    

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 !

Reply

Marsh Posté le 27-04-2001 à 17:42:40    

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

Reply

Marsh Posté le 27-04-2001 à 17:48:30    

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]


---------------
Do androïds dream of electric sheep ?
Reply

Marsh Posté le 27-04-2001 à 17:50:05    

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>


---------------
Do androïds dream of electric sheep ?
Reply

Marsh Posté le 27-04-2001 à 17:51:01    

et ca va trop vite pour IE


---------------
Do androïds dream of electric sheep ?
Reply

Marsh Posté le 27-04-2001 à 17:59:39    

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 ?

Reply

Marsh Posté le 27-04-2001 à 18:07:08    

si ca marche tant mieux mais c'est vraiment pas limpide


---------------
Do androïds dream of electric sheep ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed