>  기사  >  웹 프론트엔드  >  JavaScript로 이미지 지연 로딩을 구현하는 방법은 무엇입니까?

JavaScript로 이미지 지연 로딩을 구현하는 방법은 무엇입니까?

WBOY
WBOY원래의
2023-10-24 11:12:11901검색

JavaScript 如何实现图片懒加载功能?

JavaScript에서 이미지 지연 로딩을 구현하는 방법은 무엇입니까?

모바일 인터넷의 발달로 인해 웹 페이지의 이미지 수가 늘어나고 이로 인해 페이지 로딩 속도가 느려지고 사용자 경험이 저하됩니다. 이 문제를 해결하기 위해 이미지 지연 로딩 기능이 등장했습니다. 이미지의 지연 로딩은 사용자가 이미지 위치로 스크롤할 때 이미지가 다시 로드되어 웹 페이지의 로딩 속도를 향상시키는 것을 의미합니다. 이 기사에서는 JavaScript를 사용하여 이미지 지연 로딩을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

  1. 먼저 이미지가 지연 로드되도록 특정 속성을 표시해야 합니다. 이 예에서는 "data-src"를 태그 속성으로 사용하고 이 속성에 이미지의 실제 주소를 저장합니다.
<img src="placeholder.jpg" data-src="image.jpg" alt="Lazy Load Image">
  1. 다음으로 JavaScript를 통해 페이지 스크롤 이벤트를 수신하고 이미지가 가시 영역에 들어가는지 확인해야 합니다.
function lazyLoadImages() {
    var lazyImages = document.querySelectorAll('img[data-src]');
    
    lazyImages.forEach(function(img) {
        if(isElementInViewport(img)) {
            img.src = img.getAttribute('data-src');
            img.removeAttribute('data-src');
        }
    });
}

function isElementInViewport(el) {
    var rect = el.getBoundingClientRect();
    return (
        rect.top >= 0 &&
        rect.left >= 0 &&
        rect.bottom <= window.innerHeight &&
        rect.right <= window.innerWidth
    );
}

window.addEventListener('scroll', lazyLoadImages);
window.addEventListener('resize', lazyLoadImages);
  1. 브라우저가 창을 스크롤하거나 크기를 조정하면 scrollresize 이벤트가 트리거됩니다. 이 두 이벤트에서 lazyLoadImages 함수를 사용하여 이미지를 결정하고 로드합니다. <code>scrollresize 事件,我们可以在这两个事件中调用 lazyLoadImages 函数来判断并加载图片。
  2. 最后,在页面加载完成后立即执行一次 lazyLoadImages
  3. 마지막으로 페이지가 로드된 직후 lazyLoadImages 함수를 한 번 실행하면 첫 화면의 보이는 영역에 이미지가 로드됩니다.

window.addEventListener('load', lazyLoadImages);

위의 4단계를 통해 이미지의 지연 로딩 기능을 구현할 수 있습니다. 사용자가 이미지 위치로 스크롤하면 이미지가 자동으로 로드되므로 페이지 로딩 속도가 향상됩니다.


요약:

이미지 지연 로딩은 이미지의 실제 주소를 특정 속성에 저장하고, 페이지 스크롤 및 창 크기 조정 이벤트를 수신하여 이미지가 가시 영역에 들어가는지 확인하고, 판단 결과에 따라 이미지를 로드합니다. 이 기술은 모바일 장치와 네트워크 성능이 좋지 않은 환경에서 사용자 경험을 개선하고 서버 부하를 줄이는 데 특히 중요합니다.

위는 JavaScript가 이미지의 지연 로딩 기능을 구현하는 방법을 소개하고 해당 코드 예제를 제공합니다. 도움이 되었기를 바랍니다! 🎜

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

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