Obtenir la position d'un élément avec JavaScript
Concept et utilisation
La fonction elPosition() permet d'obtenir la position d'un élément dans une page web.
Elle retourne la position en pixels d'un élément HTML, relatives à la fenêtre du navigateur et à la zone d’affichage.
Fonction
elPosition()Retourne un objet de propriétés indiquant la position d'un élément dans la page.
- Syntaxe
elPosition(element);- Paramètre
element(HTML Node)Le paramètre
elementde la fonctionelPosition()définit l'élément HTML pour lequel obtenir la position.
- Valeur de retour(Object)
La valeur retournée par la fonction
elPosition()est un object contenant 4 propriétés indiquant les positions de l'élément relatives au navigateur et à la zone d'affichage ("viewport").- Propriétés
clientX(Number)La propriété
clientXde la valeur de retour de la fonctionelPosition()retourne la position horizontale en pixels d'un élément en fonction de la fenêtre.clientY(Number)La propriété
clientYde la valeur de retour de la fonctionelPosition()retourne la position verticale en pixels d'un élément en fonction de la fenêtre.viewportX(Number)La propriété
viewportXde la valeur de retour de la fonctionelPosition()retourne la position horizontale en pixels d'un élément en fonction de la zone d'affichage.viewportY(Number)La propriété
viewportYde la valeur de retour de la fonctionelPosition()retourne la position verticale en pixels d'un élément en fonction de la zone d'affichage.
Exemple de récupération de positions d'un élément
var element = document.getElementById('mon_element');
element.addEventListener('click', function () {
var positions = elPosition(element);
console.log({
"Position horizontale dans la fenêtre": positions.clientX,
"Position verticale dans la fenêtre": positions.clientY,
"Position horizontale dans la zone d'affichage": positions.viewportX,
"Position verticale dans la zone d'affichage": positions.viewportY
});
});Code source de la fonction
function elPosition (a) {
var b = a.getBoundingClientRect();
return {
clientX: a.offsetLeft,
clientY: a.offsetTop,
viewportX: (b.x || b.left),
viewportY: (b.y || b.top)
}
}Dernière mise à jour le .
