Obtenir le ratio de visibilité d'un élément avec JavaScript
Concept et utilisation
La fonction elView()
permet d'obtenir le ratio de visibilité d'un élément dans la zone d'affichage (viewport).
Elle utilise la méthode getBoundingClientRect()
qui peut s'avérer couteuse en performance avec une utilisation répétitive. Pour détecter le changement de ratio de visibilité d'un élément, il est préférable d'utiliser la fonction ElViewChange()
.
Fonction
Exemple d'obtention du ratio de visibilité d'un élément
var element = document.querySelector("#element");
elView(element);
// renvoie par exemple : 0.2
// (20%)
Code source de la fonction
function elView(n) {
var s = window.visualViewport,
r = n.getBoundingClientRect(),
h = r.top < 0 ? r.top + r.height : s.height - r.top,
w = r.left < 0 ? r.left + r.width : s.width - r.left;
h = h > r.height ? r.height : (h <= 0 ? 0 : h);
w = w > r.width ? r.width : (w <= 0 ? 0 : w);
return Math.round(h * w / (r.height * r.width) * 100) / 100;
}
Dernière mise à jour le .