Maison >interface Web >js tutoriel >Décrire en détail comment jQuery implémente le chargement paresseux

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

PHPz
PHPzoriginal
2017-04-04 13:44:052308parcourir

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;//不在可视范围
        }
      }
(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)//设置时间是为了更好的看出效果
            };
        });
    }
(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);
    }

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!

Déclaration:
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
Article précédent:Convertir le code ES6 en ES5Article suivant:Convertir le code ES6 en ES5