Maison > interface Web > js tutoriel > le corps du texte

Décrire en détail comment jQuery implémente le chargement paresseux

PHPz
Libérer: 2017-04-04 13:44:05
original
2286 Les gens l'ont consulté

1. Pourquoi le chargement différé est-il nécessaire ?

  • Pour les scénarios d'utilisation où il y a trop d'images, afin d'augmenter la vitesse de chargement des pages et d'améliorer l'expérience utilisateur, nous ne chargeons pas les images qui ne sont pas dans le champ de vision, attendez qu’il apparaisse dans le champ de vision avant de charger.

2. Le principe de mise en œuvre du chargement paresseux

-Le principe de mise en œuvre est très simple, pointez le src de img vers une petite image et la vraie adresse. de l'image est stockée dans img Dans un attribut personnalisé , , attendez que l'image apparaisse dans le champ de vision, récupérez l'élément img et modifiez src La valeur in est attribuée à src.

3. Points de connaissances nécessaires pour implémenter le chargement paresseux

(1) Obtenez la fenêtre, le défilement de la fenêtre et la hauteur de décalage de l'élément par rapport au haut de la fenêtre, et calculez si l'élément apparaît à l'intérieur la plage visible de la fenêtre ;

Décrire en détail comment jQuery implémente le chargement paresseux

Paste_Image.png

    function isShow($el){
      var winH = $(window).height(),//获取窗口高度
            scrollH = $(window).scrollTop(),//获取窗口滚动高度
            top = $el.offset().top;//获取元素距离窗口顶部偏移高度
      if(top < scrollH + winH){
          return true;//在可视范围
        }else{
          return false;//不在可视范围
        }
      }
Copier après la connexion
(2) Écoutez l'événement de défilement de la fenêtre et vérifiez si l'élément est disponible Dans la plage de vue ;
    $(window).on('scroll', function(){//监听滚动事件
        checkShow();
    })
    checkShow();
    function checkShow(){//检查元素是否在可视范围内
        $('img').each(function(){//遍历每一个元素
            var $cur = $(this);
            if(!!isloaded($cur)){return;}//判断是否已加载
            if (isShow($cur)) {
              setTimeout(function(){
                showImg($cur);
                },300)//设置时间是为了更好的看出效果
            };
        });
    }
Copier après la connexion
(3) Lorsque l'élément est affiché, remplacez la photo par défaut précédente par la photo dans src.
    function showImg($el){
        $el.attr('src', $el.attr('src'));
        $cur.data('isloaded',true);
    }
Copier après la connexion

Décrire en détail comment jQuery implémente le chargement paresseux

Paste_Image.png

Décrire en détail comment jQuery implémente le chargement paresseux

Paste_Image.png

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!