>  기사  >  웹 프론트엔드  >  Intersection Observer 이미지 지연 로딩 구현 방법

Intersection Observer 이미지 지연 로딩 구현 방법

小云云
小云云원래의
2018-01-31 13:17:291260검색

이 기사에서는 주로 이미지 지연 로딩을 구현하는 IntersectionObserver의 예를 제공합니다. 에디터가 꽤 좋다고 생각해서 지금 공유해서 참고용으로 올려보겠습니다. 편집자를 따라 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.

API:

https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API

소스 코드로 직접 이동:


<!DOCTYPE html>
<html>
  <header>
    <style>
      .list-item{
        height: 400px; 
        margin: 5px; 
        background-color: lightblue; 
        list-style: none;
      }
    </style>
  </header>
  <body>
    <li class="list-item"><img class="list-item-img" alt="loading" src=&#39;./images/icon1.png&#39;></li>
    <li class="list-item"><img class="list-item-img" alt="loading" src=&#39;./images/icon2.png&#39;></li>
    <li class="list-item"><img class="list-item-img" alt="loading" src=&#39;./images/icon3.png&#39;></li>
    <li class="list-item"><img class="list-item-img" alt="loading" src=&#39;./images/icon4.png&#39;></li>
    <li class="list-item"><img class="list-item-img" alt="loading" src=&#39;./images/icon5.png&#39;></li>
    <li class="list-item"><img class="list-item-img" alt="loading" src=&#39;./images/icon6.png&#39;></li>

    <script>
      var observer = new IntersectionObserver(function(changes) {
        console.log(changes);
        changes.forEach(function(element, index) {
          // statements
          if (element.intersectionRatio > 0 && element.intersectionRatio <= 1) {
            element.target.src = element.target.dataset.src;
          }
        });
      });


      function addObserver() {
        var listItems = document.querySelectorAll(&#39;.list-item-img&#39;);
        listItems.forEach(function(item) {
          observer.observe(item);
        });
      }

      addObserver();
    </script>
  </body>
</html>

코드 실행 나중에 스크롤 축이 스크롤되면 25edfb22a4f469ecb59f1190150159c6 영역이 완전히 표시될 때만 이미지를 다운로드하기 위한 해당 http 요청이 트리거된다는 사실이 발견되었습니다.

호환 브라우저:

데스크톱:

모바일:

관련 권장 사항:

vue에서 이미지 지연 로딩을 위해 vue-lazyload 플러그인을 사용하세요

이미지 로딩 지연

이미지 지연 로딩 튜토리얼의 JS 구현

위 내용은 Intersection Observer 이미지 지연 로딩 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.