Déplacement calque et "NomDiv IS NOT DEFINED"...

Résolu
mario_a_nantes Messages postés 3 Date d'inscription dimanche 8 avril 2007 Statut Membre Dernière intervention 12 avril 2007 - 10 avril 2007 à 20:42
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

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
10 avril 2007 à 21:53
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
3
mario_a_nantes Messages postés 3 Date d'inscription dimanche 8 avril 2007 Statut Membre Dernière intervention 12 avril 2007
10 avril 2007 à 23:17
Hum, effectivement. M'en vais tester ça...
Merci d'avoir pris le temps de regarder ce code nhervagault!!!
3
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
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????
3
Rejoignez-nous