11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Sur la page ci-dessous:
http://www.louer-en-france.com/locations-de-vacances/toutes-les-locations.php?REGION=Bourgogne
j'ai des tarif qui sont censés apparaitre lors d'un onmouseover au dessus du logo "Euro" de chaque annonce.

PB avec la version 7 de IE il semblerai que les boites qui apparaissaient jusqu'à maintenant sur l'image ou lègèrerement décalées, soient maintenant à une place aléatoire et hors page visible des qu'on descend dans la page.

J'ai essayé d'ajouter des coordonées X et Y du type : onmouseover="return overlib('Variable de tableau des prix',CAPTION,'Prix', FIXX, 350, FIXY, 150)....
Mais cela ne change rien à l'anarchie des apparitions en fonction de la position du scroll vertical.

J'ai aussi un autre PB qui peut etre lié à la même origine dans le menu haut de la page, les boites des sous menu n'apparaissent pas toujours au premier plan et sont perturbées par ce qui se trouve normalement dessous.

Avez-vous une solution ?

Merci
papa22
Quel est le rapport entre le titre de ce sujet et le problème ? J'ai pas tout à fait compris...

Sinon pour que la position absolue tienne compte des scroll, je pense q'il faut ajouter document.documentElement.scrollTop et scrollLeft, mais évidemment je n'ai pas testé donc ce n'est qu'une supposition.
ben, c'est la fonction javascript:void(0) qui bug avec IE7:

<A HREF="javascript:void(0);" onmouseover="return overlib('<table width=420 border=0 cellspacing=1 cellpadding=0 class=texteDroite>...


avec les versions précédente les boites prix de chaque annonce apparaissaient bien sur l'image cible de chaque annonce maintenant, avec IE7, elles semblent toute apparaitre à un point fixe de la page qui peut être hors ecran quand on descend le scroll vertical
(j'ai vu lors de recherche sur la même fonction dans d'autres sites que ce n'est pas la seule page à subir ce dérèglement)

Mais si vous n'avez pas la config vista+IE7 ce n'est peut-être pas visible
J'ai essayé sur IE7 et Windows XP2, ça a l'air de fonctionner ...

Par contre tu as une erreur de syntaxe a la ligne 32 de ton script global.js, une '}' qui traîne
Merci pour la } elle devait trainer là depuis au moins deux ans.

En revanche j'ai toujours mon PB de décalage de boite sans doute lié uniquement à la config IE7+vista.

sachant que mon script complet dans la page pour afficher 1 de ces tableaux est


<A onmouseover="return overlib('<table width=420 border=0 cellspacing=1 cellpadding=0 class=texteDroite><tr><td width=80>&nbsp;</td><td width=60 class=bbox>   <center>     <b> Nuit </b>   </center></td>    <td width=60 class=bbox>       <center>        <b> Week-End </b>       </center>    </td>    <td width=60 class=bbox>       <center>        <b> Semaine </b>       </center>    </td>    <td width=60 class=bbox>       <center>        <b> Quinzaine </b>       </center>    </td>    <td width=60 class=bbox>       <center>        <b> Mois </b>       </center>    </td>  </tr>  <tr  bgcolor=#FF6666>     <td class=bbox width=120><b>Très Haute Saison </b></td>    <td width=60 class=bbox>-</td>    <td width=60 class=bbox>-</td>    <td width=60 class=bbox>-</td>    <td width=60 class=bbox>-</td>    <td width=60 class=bbox>-</td>  </tr>  <tr  bgcolor=#FF9966>     <td class=bbox width=120><b>Haute Saison</b></td>    <td width=60 class=bbox>-</td>    <td width=60 class=bbox>-</td>    <td width=60 class=bbox>-</td>    <td width=60 class=bbox>-</td>    <td width=60 class=bbox>-</td>  </tr>  <tr bgcolor=#FFFFCC>     <td class=bbox width=120><b>Moyenne Saison </b></td>    <td width=60 class=bbox>95</td>    <td width=60 class=bbox>180</td>    <td width=60 class=bbox>525</td>    <td width=60 class=bbox>910</td>    <td width=60 class=bbox>1200</td>  </tr>  <tr bgcolor=#BCEEBB>     <td class=bbox width=120><b>Basse Saison</b></td>    <td width=60 class=bbox>-</td>    <td width=60 class=bbox>-</td>    <td width=60 class=bbox>-</td>    <td width=60 class=bbox>-</td>    <td width=60 class=bbox>-</td>  </tr></table>',CAPTION,'Prix');" onmouseout="return nd();" href="javascript:void(0);"><IMG title="Tarifs de cette location à Paris &#9;3<sup>ème</sup> arrondissement" height=32 alt="Tarifs de cette location à Paris &#9;3<sup>ème</sup> arrondissement" src="../pictos/euro.jpg" width=32 border=0></A>


Ou est-ce que tu placerais

document.documentElement.scrollTop et scrollLeft


et comment ?

Je sais j'en demande beaucoup mais pour moi le javascript tient encore beaucoup de la magie (enfin quand ça marche !)
Désolé en fait ça ne marche pas non plus sur XP, j'ai été un peu vite et je n'avais pas scrollé la page.

Quentin a raison ça vient du scrollTop qui est bien pris en compte quand on est sur IE6 mais pas sur IE7. Cela vient de la librairie que tu utilises (overLib) qui detecte le browser et fait des corrections en consequence. Mais à l'époque IE7 n'existait pas et n'est donc pas detecté. Cela prouve qu'il vaut éviter le browser detection, on s'en mord les doigts après.

Ce que tu peux faire, c'est déja mettre à jour le script (tu utilises la 3.51 et il semble que la dernière est la 4.21) en espérant que cela te règle le problème.

a+
Modifié par dunjl (18 Jan 2008 - 12:18)
Alleluïa ! en changeant l'overlib non seulement ça marche mais en plus elles ont une plus jolie couleur !
Quand je disais que c'est magique le Javascript

Merci
Modifié par papa22 (18 Jan 2008 - 13:31)