Déplacement calque et "NomDiv IS NOT DEFINED"... [Résolu]

Messages postés
3
Date d'inscription
dimanche 8 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007
- - Dernière réponse : mario_a_nantes
Messages postés
3
Date d'inscription
dimanche 8 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007
- 12 avril 2007 à 13:44
Salut!

Je me met doucement au javascript et ... j'ai un PROBLEME
Je souhaite déplacer un calque suivant des coordonnées que je calcule, tout en garantissant une compatibilité la + large possible (notamment FireFox!)... J'ai tout d'abbord essayé de trouvé des lignes de code pour déplacer des calques (DIV), mais ça n'a jamais fonctionné sur Firefox. Voici mon code:

<!-- DEBUT DU SCRIPT -->
<SCRIPT language=JavaScript>

// test navigateur
<!-- IE5+ / NS6 / OP4+ / FFox -->
if (document.getElementById)
{
compatible_IE5_NS6_OP4_FF=true;
doc_width = self.innerWidth;
doc_height = self.innerHeight;
off = "hidden";
on = "visible";
}
<!-- NS4 -->
else if (document.layers)
{
compatible_NS4=true;
doc_width = self.innerWidth;
doc_height = self.innerHeight;
off = "hide";
on = "show";
}
<!-- IE4 -->
else if (document.all)
{
compatible_IE4=true;
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
off = "hidden";
on = "visible";
}

// affichage des calques
if (compatible_NS4)
{
document.write("<layer name=BANDO left=15 top=15 visibility="+off+"></layer>");
document.write("<layer name=menu0 left=15 top=15 visibility="+off+"></layer>");
}
else if (compatible_IE4 || compatible_IE5_NS6_OP4_FF)
{
document.write("

");
document.write("

");
}

//divers calculs puis...
// boucles d'affichage
if (compatible_IE5_NS6_OP4_FF)
{
for (counter=0; counter<(2*max); counter++)
{
eval(document.getElementById(BANDO).style.left = (doc_width-715)/2 + "px");
eval(document.getElementById(BANDO).style.top = (animationBANDO_Y()-115) + "px");
}
}

Réponse de Firefox = "BANDO IS NOT DEFINED"
en rapport avec la première utilisation du DIV BANDO
eval(document.getElementById(BANDO).style.left = (doc_width-715)/2 + "px");

Et via IE & FFox, y'a juste l'affichage du calque en possition initiale, mais aucune animation

Vous z'y comprenez quelque chose ???
Help please
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
22
3
Merci
Salut

Bando il faut le mettre entre ' ou " c'est l'id de ton div
dans ta fonction getElementById
Sinon c'est considéré comme une variable donc undefined

Voila

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 145 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nhervagault
Messages postés
3
Date d'inscription
dimanche 8 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007
3
Merci
Hum, effectivement. M'en vais tester ça...
Merci d'avoir pris le temps de regarder ce code nhervagault!!!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 145 internautes nous ont dit merci ce mois-ci

Commenter la réponse de mario_a_nantes
Messages postés
3
Date d'inscription
dimanche 8 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007
3
Merci
Hum, encore et toujours un problème!
à la ligne modifiée d'après Nhervagault:
"eval(document.getElementById("BANDO").style.left = (doc_width-715)/2 + "px");"
Firefox se bloque et la console javascript m'indique " need (ou place, je sais pu) ; before statement "en m'indiquant le "px" de la ligne de code.

j'ai ajouté un parseInt ((doc_with-715)/2). Le problème vient peut être du fait que je veux concaténer un entier avec une chaîne de caractère?
j'ai essayé aussi
eval("document.getElementById("BANDO").style.left ="+ parseInt((doc_width-715)/2) + "px");
et je ne sais combien d'autres combinaisons sans résultat...
C'est où qu'ça cloche????

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 145 internautes nous ont dit merci ce mois-ci

Commenter la réponse de mario_a_nantes