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
element
de 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é
clientX
de 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é
clientY
de 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é
viewportX
de 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é
viewportY
de 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 .