


Comment déterminer si un élément se trouve dans la zone d'affichage dans jquery
Lors du développement de pages Web, nous devons souvent manipuler des éléments DOM. Pour opérer sur un élément, vous devez d'abord déterminer si l'élément se trouve dans la zone d'affichage. Dans une page Web, de nombreux éléments peuvent être masqués et ne pas se trouver dans la zone d'affichage. Par conséquent, avant d'utiliser ces éléments, vous devez déterminer s'ils se trouvent dans la zone d'affichage pour éviter d'utiliser des éléments inutiles et améliorer les performances de la page.
jQuery fournit quelques méthodes pour déterminer si un élément se trouve dans la zone d'affichage. Ci-dessous, nous présenterons ces méthodes en détail, y compris les méthodes de jugement basées sur les fenêtres, les documents et les éléments.
Méthode de jugement basée sur la fenêtre d'affichage
Dans une page Web, nous pouvons utiliser la fenêtre d'affichage (Viewport) pour juger si un élément se trouve dans la zone d'affichage. La fenêtre d'affichage est la zone de la page actuellement visible par l'utilisateur, qui peut être obtenue via les propriétés de l'objet fenêtre.
jQuery fournit quelques méthodes pour déterminer si un élément se trouve dans la fenêtre d'affichage, notamment :
- $(window).height() : obtient la hauteur de la fenêtre d'affichage actuelle.
- $(window).scrollTop() : Obtient la distance entre le haut de la fenêtre actuelle et le haut du document (c'est-à-dire la distance de défilement de la barre de défilement).
Grâce aux deux méthodes ci-dessus, nous pouvons obtenir la position supérieure et la position inférieure de la fenêtre actuelle. Pour un élément, si sa position supérieure est inférieure à la position inférieure actuelle de la fenêtre et que sa position inférieure est supérieure à la position supérieure actuelle de la fenêtre, alors il se trouve dans la zone d'affichage.
Sur la base des principes ci-dessus, nous pouvons utiliser du code pour implémenter la fonction permettant de déterminer si un élément se trouve dans la fenêtre d'affichage :
function isInViewport(elem) { var elemTop = elem.offset().top; var elemBottom = elemTop + elem.height(); var viewportTop = $(window).scrollTop(); var viewportBottom = viewportTop + $(window).height(); return elemTop < viewportBottom && elemBottom > viewportTop; } // 使用方式 var element = $('#my-element'); if (isInViewport(element)) { // 元素在视口内 } else { // 元素不在视口内 }
Dans le code ci-dessus, la fonction isInViewport() reçoit un objet élément jQuery et obtient la position de l'élément sur la page et la position actuelle de la fenêtre, détermine si l'élément se trouve dans la zone d'affichage et renvoie une valeur booléenne.
Méthode de jugement basée sur le document
Lorsque le contenu de la page dépasse la taille de la fenêtre d'affichage, la taille de la fenêtre d'affichage ne reflète plus avec précision le contenu de la page. À ce stade, il est nécessaire de juger si l'élément se trouve dans la zone d'affichage en fonction. le document. La méthode de jugement basée sur le document doit obtenir la distance de l'élément par rapport au haut du document et la hauteur du document pour déterminer si un élément se trouve dans la zone visible du document.
jQuery fournit les méthodes suivantes pour obtenir la position de l'élément dans le document et la hauteur du document :
- $(document).height() : Obtenez la hauteur du document.
- elem.offset().top : Obtient la distance de l'élément par rapport au haut du document.
En utilisant les deux méthodes ci-dessus, nous pouvons obtenir la position supérieure de l'élément et la hauteur du document pour déterminer si l'élément se trouve dans la zone visible du document. Ce qui suit est une fonction qui détermine si un élément se trouve dans la zone visible du document :
function isElementInDocumentViewport(elem) { var elemTop = elem.offset().top; var elemBottom = elemTop + elem.height(); var docViewTop = $(window).scrollTop(); var docViewBottom = docViewTop + $(window).height(); var docHeight = $(document).height(); return elemTop < docViewBottom && elemBottom > docViewTop && elemTop > 0 && elemBottom < docHeight; } // 使用方式 var element = $('#my-element'); if (isElementInDocumentViewport(element)) { // 元素在可视区域内 } else { // 元素不在可视区域内 }
Dans le code ci-dessus, la fonction isElementInDocumentViewport() détermine si un élément se trouve dans la zone visible du document, et la fonction renvoie une valeur booléenne. elemTop et elemBottom représentent respectivement la distance entre le haut et le bas de l'élément par rapport au haut du document, docViewTop et docViewBottom représentent respectivement la distance entre le haut et le bas du document par rapport au haut de la fenêtre, et docHeight représente le hauteur du document.
Méthode de jugement basée sur les éléments
Parfois, lorsque nous jugeons si un élément se trouve dans la zone d'affichage, nous nous soucions uniquement de la situation au sein d'un certain élément parent. À ce stade, nous pouvons utiliser la méthode de jugement basée sur les éléments pour obtenir la hauteur de l'élément parent et la position de la barre de défilement afin de déterminer si l'élément se trouve dans la zone visible de l'élément parent.
Ce qui suit est une fonction qui détermine si un élément se trouve dans la zone visible de l'élément parent :
function isElementInElementViewport(elem, parentElem) { var elemTop = elem.offset().top - parentElem.offset().top; var elemBottom = elemTop + elem.height(); var parentViewTop = parentElem.scrollTop(); var parentViewBottom = parentViewTop + parentElem.height(); var parentHeight = parentElem.height(); return elemTop < parentViewBottom && elemBottom > parentViewTop && elemTop > 0 && elemBottom < parentHeight; } // 使用方式 var element = $('#my-element'); var parentElement = $('#my-parent-element'); if (isElementInElementViewport(element, parentElement)) { // 元素在父元素可视区域内 } else { // 元素不在父元素可视区域内 }
Dans le code ci-dessus, la fonction isElementInElementViewport() reçoit deux objets élément jQuery, qui sont l'élément qui doit être déterminé et son élément parent. La fonction renvoie une valeur booléenne. elemTop et elemBottom représentent respectivement la distance entre le haut et le bas de l'élément par rapport au haut de l'élément parent. parentViewTop et parentViewBottom représentent respectivement la distance entre le haut et le bas de l'élément parent par rapport au haut de la barre de défilement. représente la hauteur de l'élément parent.
Conclusion
Dans le développement Web, déterminer si un élément se trouve dans la zone d'affichage est une fonction basique et importante. Lorsque vous utilisez jQuery pour exploiter des éléments DOM, nous pouvons utiliser les méthodes fournies par jQuery pour déterminer si l'élément se trouve dans la zone visible de la fenêtre, du document ou de l'élément parent. En utilisant ces méthodes de manière rationnelle, nous pouvons améliorer les performances des pages et éviter des opérations inutiles.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'article traite de l'utilisation Effecte dans React, un crochet pour gérer les effets secondaires comme la récupération des données et la manipulation DOM dans les composants fonctionnels. Il explique l'utilisation, les effets secondaires courants et le nettoyage pour éviter des problèmes comme les fuites de mémoire.

Les fonctions d'ordre supérieur dans JavaScript améliorent la concision du code, la réutilisabilité, la modularité et les performances par abstraction, modèles communs et techniques d'optimisation.

L'article explique l'algorithme de réconciliation de React, qui met à jour efficacement le DOM en comparant les arbres DOM virtuels. Il traite des avantages de la performance, des techniques d'optimisation et des impacts sur l'expérience utilisateur. Compte de charge: 159

L'article traite du curry dans JavaScript, une technique transformant les fonctions mulguments en séquences de fonctions à argument unique. Il explore la mise en œuvre du currying, des avantages tels que des applications partielles et des utilisations pratiques, améliorant le code

L'article discute de la connexion des composants React à Redux Store à l'aide de Connect (), expliquant MapStateToproprop, MapDispatchToprops et des impacts de performances.

L'article explique UseContext dans React, qui simplifie la gestion de l'État en évitant le forage des accessoires. Il traite des avantages tels que les améliorations centralisées de l'État et des performances grâce à des redevances réduites.

L'article discute de la prévention des comportements par défaut dans les gestionnaires d'événements à l'aide de la méthode empêchée dedEfault (), de ses avantages tels que une expérience utilisateur améliorée et des problèmes potentiels tels que les problèmes d'accessibilité.

L'article traite des avantages et des inconvénients des composants contrôlés et incontrôlés dans la réaction, en se concentrant sur des aspects tels que la prévisibilité, la performance et les cas d'utilisation. Il conseille les facteurs à considérer lors du choix entre eux.
