Maison interface Web Questions et réponses frontales Comment déterminer si un élément se trouve dans la zone d'affichage dans jquery

Comment déterminer si un élément se trouve dans la zone d'affichage dans jquery

Apr 24, 2023 pm 02:50 PM

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 :

  1. $(window).height() : obtient la hauteur de la fenêtre d'affichage actuelle.
  2. $(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 {
    // 元素不在视口内
}
Copier après la connexion

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 :

  1. $(document).height() : Obtenez la hauteur du document.
  2. 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 = $(&#39;#my-element&#39;);
if (isElementInDocumentViewport(element)) {
    // 元素在可视区域内
} else {
    // 元素不在可视区域内
}
Copier après la connexion

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 {
    // 元素不在父元素可视区域内
}
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Mar 19, 2025 pm 03:58 PM

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.

Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Mar 18, 2025 pm 01:44 PM

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.

Comment fonctionne l'algorithme de réconciliation React? Comment fonctionne l'algorithme de réconciliation React? Mar 18, 2025 pm 01:58 PM

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

Comment fonctionne le currying en JavaScript et quels sont ses avantages? Comment fonctionne le currying en JavaScript et quels sont ses avantages? Mar 18, 2025 pm 01:45 PM

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

Comment connectez-vous les composants React au magasin Redux à l'aide de Connect ()? Comment connectez-vous les composants React au magasin Redux à l'aide de Connect ()? Mar 21, 2025 pm 06:23 PM

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

Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Mar 19, 2025 pm 03:59 PM

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.

Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Mar 19, 2025 pm 04:10 PM

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é.

Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés? Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés? Mar 19, 2025 pm 04:16 PM

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.

See all articles