Question

Je n'arrive pas à comprendre comment obtenir le offsetTop d'un élément dans une table. Cela fonctionne bien pour les éléments hors des tableaux, mais tous les éléments dans un tableau renvoient le même résultat, qui se trouve généralement en haut de la page. J'ai essayé ceci dans Firefox et Chrome. Comment obtenir le décalage haut d'un élément dans une table?

Était-ce utile?

La solution

offsetTop renvoie une valeur relative à offsetParent; vous devez ajouter récursivement offsetParent.offsetTop à travers tous les parents jusqu'à ce que null soit offset. Envisagez d’utiliser le . noreferrer "> () <=> méthode.

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 };
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top