49 votes

Utiliser jQuery pour trouver un élément à une position particulière ?

Existe-t-il une méthode dans jQuery pour sélectionner un élément situé à une position particulière ?

Par exemple, puis-je sélectionner l'élément qui se trouve à left:100 et top:300 en position absolue ?

Ce serait bien si je pouvais sélectionner un élément situé dans une plage de positions, par exemple, sélectionner l'élément qui est situé à gauche : 100 - 150 px top 200 - 280px.

83voto

jAndy Points 93076

Vous êtes à la recherche de la .elementFromPoint() Méthode JavaScript/DOM.

var elem = document.elementFromPoint(100, 100) // x, y

Cela renvoie un DOM node qui, bien entendu, peut ensuite être intégré à un objet jQuery :

$(elem).remove(); // for instance

Je ne suis pas très au courant de la compatibilité entre navigateurs et j'aimerais que des personnes qui s'y connaissent mieux que moi modifient cet article ou écrivent un commentaire à ce sujet.

Référence : .elementFromPoint()

Exemple de lien : http://www.jsfiddle.net/YjC6y/22/

12voto

Cees Timmerman Points 1739

A condition que vous connaissiez les coordonnées exactes par rapport au document :

function getElsAt(top, left){
    return $("body")
               .find("*")
               .filter(function() {
                           return $(this).offset().top == top 
                                    && $(this).offset().left == left;
               });
}

L'autre réponse s'arrête à la première superposition.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X