|
Dernière réponse | |
---|---|
Sujet : javaScript : passer un id en paramatre ? | |
nicotine | si ca marche tant mieux mais c'est vraiment pas limpide |
Aperçu |
---|
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 ? |