2010-03-08 4 views
2

FF et IE donnent différents offsetTop lorsqu'un enfant est dans un parent avec débordement et bordure. FF soustrait la taille de la bordure supérieure du parent de la valeur offsetTop, donc retourne une valeur négative (souvent); Je pense que IE renvoie la valeur correcte à la place.element.offsetTop lorsque le parent a un débordement et une bordure

Test it

Il y a une façon de crossbrowser pour obtenir la même valeur?

Merci.

Répondre

2

La propriété offsetTop donne la position par rapport au parent de décalage. La différence entre Fx et IE est qu'ils utilisent des éléments différents comme parent de décalage dans ce cas.

Je ne sais pas exactement comment le débordement affecte ceci, et je n'ai pas encore trouvé quoi que ce soit à ce sujet dans les définitions. Cependant, il existe un bug connu dans IE où les parents offset sont faussés, et ce peut être une variante de ce bug que vous voyez ici.

0

Il semble que ce soit un bogue dans firefox qui a été ouvert depuis 2005. Le problème semble être qu'il n'y a pas de spécification claire pour offsetTop.

https://bugzilla.mozilla.org/show_bug.cgi?id=307502

L'utilisation getBoundingClientRect peut fonctionner (il le fait pour moi).

var rect; 
rect = el.getBoundingClientRect(); 
return rect.top; 
Questions connexes