J'ai une info-bulle qui, au passage de la souris, s'ouvre dans le coin supérieur gauche de la page, sans tenir compte du 'mouseover'. Dans le cas de IE8 cela fonctionne bien et ouvre juste au-dessus de l'endroit où la souris est placé mais dans Firefox, il est incapable de calculer/interpréter les valeurs.L'info-bulle s'ouvre au même endroit quelle que soit la zone de mise en page dans Firefox
ici est l'extrait de code pour infobulle
function DoFlyOver()
{
if(ToClear != -1) window.clearTimeout(ToClear);
var thisForm = eval("document." + formName);
if (FlyOverArea == null) FlyOverArea = document.getElementById("FlyOverArea");
if (FlyOverArea.firstChild!==null)
FlyOverArea.removeChild(FlyOverArea.firstChild); // remove all existing content
FlyOverArea.appendChild(document.createTextNode(FoText));
FoLeft = $displayOptions.getFlyoverLeftOfCursor();
FoTop = $displayOptions.getFlyoverTopOfCursor();
FlyOverArea.style.left = Number(thisForm.mousex.value) + Number(thisForm.scrollx.value) - Number(FoLeft);
FlyOverArea.style.top = Number(thisForm.mousey.value) + Number(thisForm.scrolly.value) - Number(FoTop);
var maxX = (window.screen.width * $displayOptions.getFlyoverThreshold())/100;
// If the mouse is at the extreme right corner the max threshold should the tooltip be //placed.
if(FlyOverArea.style.posLeft > (window.screen.width - maxX)){
FlyOverArea.style.left = window.screen.width - maxX;
}
FlyOverArea.style.display = "";
ToClear = setTimeout("ClearFlyOver()", $displayOptions.getFlyoverVisibleTimeWithCursor(), "JAVASCRIPT");//set timeout
}
<DIV ID=FlyOverArea CLASS="FO" STYLE="display: none">
</DIV>
Je soupçonne son wih style.top
et style.left
et essayé avec style.pixelLeft,style.posleft
aussi, mais pas d'utilisation
Avez-vous débogué votre code et regardé ce que les valeurs sont et comment ils diffèrent d'un navigateur à? Vous ne savez pas pourquoi vous stockez des valeurs pour la position de la souris dans un champ de formulaire. – epascarello
oui, j'ai utilisé firebug, mais pas beaucoup d'utilisation – GustyWind