Énoncé du problème :
Lors du chargement dynamique d'éléments via AJAX, il peut être difficile de déterminer s'ils apparaissent dans la zone visible de la page, surtout si la page nécessite défilement.
Solution :
Pour déterminer la visibilité d'un élément après le défilement, nous pouvons exploiter une fonction JavaScript appelée isScrolledIntoView() :
function isScrolledIntoView(elem) { var docViewTop = $(window).scrollTop(); var docViewBottom = docViewTop + $(window).height(); var elemTop = $(elem).offset().top; var elemBottom = elemTop + $(elem).height(); return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); }
Approche alternative :
Une fonction utilitaire alternative, Utils.isElementInView(), fournit à la fois une option entièrementInView et partiellementInView :
function Utils() {} Utils.prototype = { constructor: Utils, isElementInView: function(element, fullyInView) { var pageTop = $(window).scrollTop(); var pageBottom = pageTop + $(window).height(); var elementTop = $(element).offset().top; var elementBottom = elementTop + $(element).height(); if (fullyInView === true) { return ((pageTop < elementTop) && (pageBottom > elementBottom)); } else { return ((elementTop <= pageBottom) && (elementBottom >= pageTop)); } } }; var Utils = new Utils();
Utilisation :
var isElementInView = Utils.isElementInView($('#flyout-left-container'), false); if (isElementInView) { console.log('in view'); } else { console.log('out of view'); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!