Je ne peux pas sembler comprendre comment obtenir le décalage d'un élément dans une table. Cela fonctionne bien sur les éléments en dehors des tables, mais tous les éléments d'une table renvoient le même résultat, et c'est généralement en haut de la page. J'ai essayé ceci dans Firefox et Chrome. Comment puis-je obtenir le offsetTop d'un élément dans une table?
offsetTop
renvoie une valeur relative à offsetParent
; Vous devez ajouter récursivement offsetParent.offsetTop
à tous les parents jusqu'à offsetParent
que offsetParent
soit null
. Envisager d'utiliser la méthode offset
()
jQuery .
EDIT : si vous ne souhaitez pas utiliser jQuery, vous pouvez écrire une méthode comme celle-ci (non testée):
function offset(elem) { if(!elem) elem = this; var x = elem.offsetLeft; var y = elem.offsetTop; while (elem = elem.offsetParent) { x += elem.offsetLeft; y += elem.offsetTop; } return { left: x, top: y }; }