méthode jquery et application pour obtenir des éléments invisibles

PHPz
Libérer: 2023-04-06 10:07:41
original
1392 Les gens l'ont consulté

Avec le développement et la vulgarisation de la technologie réseau, de plus en plus d'applications de sites Web ont commencé à adopter la technologie des pages dynamiques, parmi lesquelles le framework JavaScript jQuery est le plus largement utilisé. Dans jQuery, obtenir des éléments est l’une des opérations les plus élémentaires. Cependant, certains éléments de nœud peuvent devenir invisibles en raison de certains paramètres de style ou de restrictions de position, et ce sont ces éléments de nœud invisibles qui sont souvent l'une des cibles sur lesquelles nous devons opérer dans le développement réel. Alors comment obtenir des éléments invisibles en utilisant jQuery ?

1. Analyse de type des éléments invisibles

Dans jQuery, il existe quatre éléments invisibles courants : l'affichage n'est aucun, la visibilité est masquée, la largeur ou la hauteur de l'élément est de 0, ou il est en dehors de l'écran (le haut ou la gauche est passé trop grand). ou trop petit).

1. L'affichage est nul

Ces éléments existent dans la page HTML, mais ils ne sont pas affichés sur la page et n'occupent pas l'espace de mise en page.

Par exemple, dans l'exemple de code ci-dessous en HTML, bien qu'il y ait deux éléments div, un seul div est visible sur la page :

<div id="visibleDiv">这是一个可见的div元素</div>
<div id="hiddenDiv" style="display:none;">这是一个不可见的div元素</div>
Copier après la connexion

2 La visibilité est masquée

Cette partie de l'élément est similaire à l'affichage. type aucun, mais l'élément est invisible et occupe de l'espace de mise en page sur la page. Par exemple, dans l'exemple de code ci-dessous en HTML, bien qu'il y ait deux éléments div, les deux div occupent l'espace de mise en page sur la page, mais l'un est visible et l'autre est invisible :

<div id="visibleDiv">这是一个可见的div元素</div>
<div id="hiddenDiv" style="visibility:hidden;">这是一个不可见但占据布局空间的div元素</div>
Copier après la connexion

3. La largeur ou la hauteur de l'élément est de 0

.

Dans ce cas, la mise en page occupée par l'élément n'affectera pas la mise en page de la page, mais comme la largeur ou la hauteur est de 0, nous ne pouvons pas trouver et utiliser directement l'élément.

Par exemple, dans l'exemple de code ci-dessous en HTML, bien qu'il y ait trois éléments div, seuls deux divs sont visibles sur la page et les deux autres sont invisibles. La largeur et la hauteur de l'élément "notVisibleDiv" sont toutes deux égales à 0, il est donc invisible et ne peut pas être trouvé via les sélecteurs ordinaires :

<div id="visibleDiv">这是一个可见的div元素</div>
<div id="zeroSizeDiv" style="width:0;height:0;">这是一个宽高都为0的不可见div元素</div>
<div id="notVisibleDiv" style="position:absolute;width:0;height:0;">这是一个宽高都为0的、本身就在页面之外的不可见div元素</div>
Copier après la connexion

4 Il est en dehors de l'écran (le haut ou la gauche est trop grand ou trop petit)

Ceux-ci. les éléments sont présents. Ils existent également sur la page, mais nécessitent généralement du code JavaScript pour les trouver et les exploiter.

Par exemple, dans l'exemple de code ci-dessous en HTML, bien qu'il y ait trois éléments div, un seul div est visible sur la page et les deux autres sont invisibles. Parmi eux, la valeur gauche de l'élément "leftSidedDiv" est trop petite et se trouve en dehors de la page, tandis que la valeur gauche de l'élément "rightSidedDiv" est trop grande, et des problèmes similaires se produisent :

<div id="visibleDiv">这是一个可见的div元素</div>
<div id="leftSidedDiv" style="position:absolute;left:-9999px;">这是一个left值过小的不可见div元素</div>
<div id="rightSidedDiv" style="position:absolute;left:9999px;">这是一个left值过大的不可见div元素</div>
Copier après la connexion

2. Comment trouver des éléments invisibles avec jQuery

En raison de ces incohérences sur les éléments visibles, donc dans le processus de développement réel, nous devrons peut-être les trouver et effectuer certaines opérations, telles que l'obtention des valeurs d'attribut des éléments invisibles, la définition de nouveaux styles pour les éléments invisibles, etc.

Apprenons maintenant à trouver des éléments invisibles dans jQuery. Sur la base de l'analyse ci-dessus, nous pouvons obtenir les quatre méthodes suivantes :

1. Sélecteur

Vous pouvez utiliser le même sélecteur pour rechercher des éléments invisibles. Le périmètre de recherche portant sur l’ensemble du document, cette méthode nécessite un certain temps de calcul. Mais l’avantage est que le code est simple et facile à comprendre.

Par exemple, nous voulons obtenir l'élément "leftSidedDiv" situé à l'extérieur de l'écran :

var notVisibleEle = $('#leftSidedDiv');
Copier après la connexion

2. Sélecteur de filtre

Le filtre peut filtrer les éléments qui répondent à des conditions d'attribut spécifiques.

Par exemple, nous voulons obtenir l'élément dont la valeur d'attribut de position est absolue :

var notVisibleEle = $('div').filter(function() {
    return $(this).css('position') == 'absolute';
});
Copier après la connexion

3. Masquer ou afficher les éléments invisibles

Cela équivaut à déplacer l'élément invisible vers une plage contrôlable, puis à obtenir la valeur de l'attribut.

Par exemple, nous voulons obtenir l'élément "notVisibleDiv" avec une largeur et une hauteur de 0 :

var hoverEleWidth = $('#notVisibleDiv').show().width();
var hoverEleHeight = $('#notVisibleDiv').show().height();
$('#notVisibleDiv').hide();
Copier après la connexion

4 Parcours de l'arborescence du document

jQuery peut trouver des éléments invisibles dans l'arborescence du document en parcourant. Cette approche se traduit par de meilleures performances car seule une partie de l’arborescence des documents doit être parcourue au lieu de l’intégralité de l’arborescence des documents.

Par exemple, nous voulons obtenir tous les éléments hors écran :

$('#containerDiv').find('*').filter(function() {
    return $(this).position().left < 0 || $(this).position().left > $(document).width();
});
Copier après la connexion

3. Application d'éléments invisibles

Maintenant que nous comprenons comment obtenir des éléments invisibles, nous pouvons l'appliquer de manière flexible dans le processus de développement réel. Vous trouverez ci-dessous quelques scénarios d'application spécifiques.

1. Modifier dynamiquement les attributs des éléments invisibles

Par exemple, l'élément div que nous avons spécifié dans la page Web était à l'origine invisible, mais lorsque la souris survole un bouton, le div doit être affiché, et lorsque la souris après suppression, cet état doit être restauré.

<div id="hoverDiv" style="display:none;">这是一个鼠标悬停时显示的div元素</div>
<button id="hoverBtn">悬停按钮</button>
Copier après la connexion
// 鼠标悬停时显示隐藏
$('#hoverBtn').hover(
    function() {
        $('#hoverDiv').show();
    },
    function() {
        $('#hoverDiv').hide();
    }
);
Copier après la connexion

2. Détecter la taille des éléments invisibles

Par exemple, nous devons obtenir la taille du nœud cible et le recouvrir dans la couche flottante

<div class="targetEle" style="width:0;height:0;">这是一个宽高都为0的不可见元素</div>
<div class="popupBox" style="display:none;">这是一个浮层容器,将会包裹住目标节点</div>
Copier après la connexion
// 获取目标节点大小
var targetWidth = $('.targetEle').show().width();
var targetHeight= $('.targetEle').show().height();

// 填充浮层中内容并显示
var popupContent = '目标节点的大小为宽:' + targetWidth + 'px,高:' + targetHeight + 'px';
$('.popupBox').html(popupContent).show();

$('.targetEle').hide();
Copier après la connexion

3 Obtenir les attributs des éléments invisibles et les utiliser

Pour. Par exemple, lorsque la souris est allumée. Lors du survol d'une certaine navigation, vous pouvez obtenir l'adresse de l'image sous la navigation correspondante, puis afficher l'image sur la page via une requête Ajax.

<div class="navItem" data-pic-url="https://www.example.com/pic.jpg">导航项1</div>
<div class="navItem" data-pic-url="https://www.example.com/pic2.jpg">导航项2</div>
<div class="navItem" data-pic-url="https://www.example.com/pic3.jpg">导航项3</div>
<div class="imageContainer"></div>
Copier après la connexion
// 鼠标悬停时操作
$('.navItem').hover(
    function() {
        var picUrl = $(this).data('pic-url');
        $.ajax({
            url: picUrl,
            success: function(data) {
                $('.imageContainer').html('<img src="&#39; + data + &#39;">');
            }
        });
    },
    function() {
        $('.imageContainer').empty();
    }
);
Copier après la connexion

Résumé :

JQuery pour obtenir des éléments invisibles implique plusieurs méthodes telles que des sélecteurs, le filtrage des sélecteurs, le masquage ou l'affichage d'éléments invisibles et la traversée de l'arborescence du document. L'application flexible de ces méthodes peut mieux répondre à nos besoins en matière de développement réel.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!