Je me demande simplement comment puis-je implémenter plus de données sur le défilement uniquement si le div.loading est visible.
Habituellement, nous recherchons la hauteur de la page et la hauteur de défilement, pour voir si nous devons charger plus de données. mais l'exemple suivant est alors peu compliqué.
L'image suivante est un parfait exemple. il y a deux div .loading dans la liste déroulante. Lorsque l'utilisateur fait défiler le contenu, selon ce qui est visible, il devrait commencer à charger plus de données pour celui-ci.
Alors, comment puis-je savoir si .loading div est encore visible par l'utilisateur ou non? Je peux donc commencer à charger des données pour cette div uniquement.
la source
new_element.hide().appendTo('.your_div').fadeIn(); $(window).scrollTop($(window).scrollTop()-1);
première ligne ajoute des éléments de manière agréable, la seconde assure que votre fonction ne s'arrête jamais en bas de page.var end = $("#BottomThing").offset().top; var viewEnd = $(window).scrollTop() + $(window).height(); var distance = end - viewEnd; if (distance < 300) // do load
Avez-vous entendu parler du plugin jQuery Waypoint .
Vous trouverez ci-dessous la manière simple d'appeler un plugin de waypoints et de faire charger la page plus de contenu une fois que vous atteignez le bas du scroll:
la source
Voici un exemple:
la source
La réponse acceptée à cette question a un problème avec le chrome lorsque la fenêtre est agrandie à une valeur> 100%. Voici le code recommandé par les développeurs de chrome dans le cadre d'un bug que j'avais soulevé sur le même.
Pour référence:
Question SO connexe
Bug de Chrome
la source
Si tout votre document ne défile pas, par exemple, lorsque vous avez un défilement
div
dans le document, les solutions ci-dessus ne fonctionneront pas sans adaptations. Voici comment vérifier si la barre de défilement du div a atteint le bas:la source
J'ai passé du temps à essayer de trouver une fonction intéressante pour envelopper une solution. Quoi qu'il en soit, je me suis retrouvé avec ce que je pense être une meilleure solution lors du chargement de plusieurs contenus sur une seule page ou sur un site.
Fonction:
Vous pouvez ensuite appeler la fonction en utilisant window on scroll (par exemple, vous pouvez également la lier à un clic etc. comme je le fais aussi, d'où la fonction):
Utiliser:
Cette approche devrait également fonctionner pour faire défiler les divs, etc. J'espère que cela aide, dans la question ci-dessus, vous pouvez utiliser cette approche pour charger votre contenu dans des sections, peut-être ajouter et ainsi dribbler toutes ces données d'image plutôt que l'alimentation en masse.
J'ai utilisé cette approche pour réduire les frais généraux sur https://www.taxformcalculator.com . C'est mort le tour, si vous regardez le site et inspectez l'élément, etc., vous pouvez voir l'impact sur le chargement de la page dans Chrome (à titre d'exemple).
la source
Amélioration de la réponse @deepakssn. Il est possible que vous souhaitiez que les données se chargent un peu avant de faire défiler vers le bas .
[var scrollLoad] est utilisé pour bloquer l'appel jusqu'à ce qu'une nouvelle donnée soit ajoutée.
J'espère que cela t'aides.
la source
Votre question porte spécifiquement sur le chargement de données lorsqu'un div apparaît , et non lorsque l'utilisateur atteint la fin de la page.
Voici la meilleure réponse à votre question: https://stackoverflow.com/a/33979503/3024226
la source