웹 프론트엔드 CSS 튜토리얼 CSS 속성을 사용하여 반응형 이미지의 지연 로딩을 구현하는 방법

CSS 속성을 사용하여 반응형 이미지의 지연 로딩을 구현하는 방법

Nov 18, 2023 am 08:12 AM
반응형 지연 로딩 CSS 속성

CSS 속성을 사용하여 반응형 이미지의 지연 로딩을 구현하는 방법

CSS 속성을 사용하여 반응형 이미지 지연 로딩을 구현하는 방법

웹 개발 시, 특히 모바일 장치에서 많은 수의 이미지를 로드해야 하는 상황에 자주 직면하게 됩니다. 페이지 로딩 속도와 사용자 경험을 향상시키기 위해 이미지 지연 로딩이 일반적인 최적화 방법이 되었습니다.

지연 로딩은 페이지가 로드될 때 전체 페이지의 모든 이미지를 로드하는 대신 보이는 영역의 이미지만 로드한다는 의미입니다. 이는 초기 로딩에 필요한 시간을 크게 줄이고 불필요한 대역폭 낭비를 방지합니다.

이번 글에서는 CSS 속성을 이용하여 다양한 화면 크기와 기기에 적용할 수 있는 반응형 이미지 레이지 로딩을 구현하는 방법을 소개하겠습니다.

먼저 HTML에서 지연 로드해야 하는 이미지를 정의해야 합니다. 여기서는 <img class="lazy-image lazy" src="/static/imghw/default1.png" data-src="image.jpg" alt="CSS 속성을 사용하여 반응형 이미지의 지연 로딩을 구현하는 방법" > 요소를 사용하고 사용자 정의 속성 data-src를 설정하여 이미지의 실제 URL을 저장합니다. <img class="lazy-image lazy" src="/static/imghw/default1.png" data-src="image.jpg" alt="CSS 속성을 사용하여 반응형 이미지의 지연 로딩을 구현하는 방법" >元素,并设置一个自定义的属性data-src来存储图像的实际URL。

<img class="lazy-image lazy" src="/static/imghw/default1.png" data-src="image.jpg" data- alt="Image">
로그인 후 복사

接下来,我们需要编写CSS样式来隐藏初始的图像,并通过使用background-size属性设置图像的背景图片。

.lazy-image {
  background-image: url(placeholder.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
로그인 후 복사

在上面的代码中,placeholder.jpg是一个占位图像,用于在实际图像加载完成之前显示。

然后,我们使用CSS属性@media来针对不同的屏幕尺寸定义不同的样式。

/* 对于大屏幕设备,立即加载图像 */
@media screen and (min-width: 1024px) {
  .lazy-image {
    background-image: none;
  }
}

/* 对于小屏幕设备,延迟加载图像 */
@media screen and (max-width: 1023px) {
  .lazy-image {
    visibility: hidden;
  }
  
  .lazy-image[data-src] {
    visibility: visible;
  }
}
로그인 후 복사

在上述代码中,我们使用@media指令将屏幕宽度分为两个范围:大于等于1024px和小于1024px。对于大屏幕设备,我们立即加载图像,将background-image设置为none。对于小屏幕设备,我们将.lazy-imagevisibility属性设置为hidden,同时为带有data-src属性的.lazy-image元素设置visibility属性为visible,这样就可以实现延迟加载图像。

最后,我们需要使用JavaScript来实现图像的实际加载。

document.addEventListener("DOMContentLoaded", function() {
  const lazyImages = document.querySelectorAll(".lazy-image");

  const lazyLoad = function() {
    lazyImages.forEach(function(img) {
      if (img.getBoundingClientRect().top <= window.innerHeight && img.hasAttribute("data-src")) {
        img.setAttribute("src", img.getAttribute("data-src"));
        img.removeAttribute("data-src");
      }
    });
  };

  window.addEventListener("scroll", lazyLoad);
  window.addEventListener("resize", lazyLoad);
  window.addEventListener("orientationchange", lazyLoad);
});
로그인 후 복사

上述代码中,我们使用document.querySelectorAll获取所有带有.lazy-image类的元素,并定义一个lazyLoad函数来判断图像是否在可见区域内,如果是则加载图像。

最后,我们将lazyLoadrrreee

다음으로 background-size 속성을 ​​사용하여 초기 이미지를 숨기고 이미지의 배경을 설정하는 CSS 스타일을 작성해야 합니다.

rrreee

위 코드에서 placeholder.jpg는 실제 이미지가 로드될 때까지 표시하는 데 사용되는 자리 표시자 이미지입니다. 🎜🎜그런 다음 CSS 속성 @media를 사용하여 다양한 화면 크기에 맞는 다양한 스타일을 정의합니다. 🎜rrreee🎜위 코드에서는 @media 지시문을 사용하여 화면 너비를 1024px 이상과 1024px 미만의 두 범위로 나눕니다. 대형 화면 장치의 경우 이미지를 즉시 로드하고 Background-imagenone으로 설정합니다. 작은 화면 장치의 경우 .lazy-imagevisibility 속성을 ​​hidden으로 설정하고 data-src 속성의 <code>.lazy-image 요소는 visibility 속성을 ​​visible로 설정하여 이미지 지연 로딩을 달성할 수 있습니다. 🎜🎜마지막으로 실제로 이미지를 로드하려면 JavaScript를 사용해야 합니다. 🎜rrreee🎜위 코드에서는 document.querySelectorAll을 사용하여 .lazy-image 클래스가 있는 모든 요소를 ​​가져오고 lazyLoad 함수를 정의했습니다. 이미지가 가시 영역 내에 있는지 확인하려면 이미지를 로드하십시오. 🎜🎜마지막으로 lazyLoad 함수를 브라우저 스크롤, 창 크기 변경 및 화면 방향 변경 이벤트에 바인딩하여 페이지가 스크롤되거나 크기가 변경될 때 로딩 기능이 트리거되도록 합니다. 🎜🎜위는 CSS 속성을 사용하여 반응형 이미지의 지연 로딩을 구현하는 방법 및 해당 코드 예제입니다. 이 방법을 통해 웹 페이지 로딩 속도를 최적화하고, 사용자 경험을 개선하며, 불필요한 대역폭 낭비를 피할 수 있습니다. 🎜

위 내용은 CSS 속성을 사용하여 반응형 이미지의 지연 로딩을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Spring Data JPA의 아키텍처와 작동 원리는 무엇입니까? Spring Data JPA의 아키텍처와 작동 원리는 무엇입니까? Apr 17, 2024 pm 02:48 PM

SpringDataJPA는 JPA 아키텍처를 기반으로 하며 매핑, ORM 및 트랜잭션 관리를 통해 데이터베이스와 상호 작용합니다. 해당 리포지토리는 CRUD 작업을 제공하고 파생 쿼리는 데이터베이스 액세스를 단순화합니다. 또한 지연 로딩을 사용하여 필요한 경우에만 데이터를 검색하므로 성능이 향상됩니다.

CSS에서 그루브는 무엇을 의미합니까? CSS에서 그루브는 무엇을 의미합니까? Apr 28, 2024 pm 04:12 PM

CSS에서 홈은 홈과 같은 효과를 생성하는 테두리 스타일을 나타냅니다. 구체적인 적용은 다음과 같습니다. CSS 속성 border-style: 홈을 사용하세요. 홈 모양 테두리에는 오목한 내부 가장자리, 돌출된 외부 가장자리 및 그림자 효과가 있습니다.

Angular 구성 요소 및 해당 표시 속성: 비블록 기본값 이해 Angular 구성 요소 및 해당 표시 속성: 비블록 기본값 이해 Mar 15, 2024 pm 04:51 PM

Angular 프레임워크의 구성 요소에 대한 기본 표시 동작은 블록 수준 요소에 대한 것이 아닙니다. 이 디자인 선택은 구성 요소 스타일의 캡슐화를 촉진하고 개발자가 각 구성 요소가 표시되는 방법을 의식적으로 정의하도록 장려합니다. CSS 속성 표시를 명시적으로 설정하면 Angular 구성 요소의 표시를 완전히 제어하여 원하는 레이아웃과 응답성을 얻을 수 있습니다.

Java JPA 성능 최적화 팁: 애플리케이션을 멋지게 만드세요 Java JPA 성능 최적화 팁: 애플리케이션을 멋지게 만드세요 Feb 19, 2024 pm 09:03 PM

기사 키워드: JavaJPA 성능 최적화 ORM 엔터티 관리 JavaJPA(JavaPersistance API)는 Java 개체를 사용하여 데이터베이스의 데이터를 작동할 수 있는 ORM(객체 관계형 매핑) 프레임워크입니다. JPA는 데이터베이스와 상호 작용하기 위한 통합 API를 제공하므로 동일한 코드를 사용하여 다른 데이터베이스에 액세스할 수 있습니다. 또한 JPA는 지연 로딩, 캐싱, 더티 데이터 감지와 같은 기능도 지원하여 애플리케이션 성능을 향상시킬 수 있습니다. 그러나 잘못 사용하면 JPA 성능이 애플리케이션에 병목 현상을 일으킬 수 있습니다. 다음은 몇 가지 일반적인 성능 문제입니다. N+1 쿼리 문제: 응용 프로그램에서 JPQL 쿼리를 사용할 때 N+1 쿼리 문제가 발생할 수 있습니다. 이런 종류의

html 이미지가 너무 크면 어떻게 해야 할까요? html 이미지가 너무 크면 어떻게 해야 할까요? Apr 05, 2024 pm 12:24 PM

너무 큰 HTML 이미지를 최적화하는 몇 가지 방법은 다음과 같습니다. 이미지 파일 크기 최적화: 압축 도구나 이미지 편집 소프트웨어를 사용합니다. 미디어 쿼리 사용: 장치에 따라 이미지 크기를 동적으로 조정합니다. 지연 로딩 구현: 이미지가 가시 영역에 들어갈 때만 이미지를 로드합니다. CDN 사용: 이미지를 여러 서버에 배포합니다. 이미지 자리 표시자 사용: 이미지가 로드되는 동안 자리 표시자 이미지를 표시합니다. 축소판 사용: 이미지의 작은 버전을 표시하고 클릭 시 전체 크기 이미지를 로드합니다.

Laravel 성능 병목 현상 디코딩: 최적화 기술이 완전히 공개되었습니다! Laravel 성능 병목 현상 디코딩: 최적화 기술이 완전히 공개되었습니다! Mar 06, 2024 pm 02:33 PM

Laravel 성능 병목 현상 디코딩: 최적화 기술이 완전히 공개되었습니다! 인기 있는 PHP 프레임워크인 Laravel은 개발자에게 풍부한 기능과 편리한 개발 경험을 제공합니다. 그러나 프로젝트 규모가 커지고 방문 횟수가 늘어나면서 성능 병목 현상에 직면할 수도 있습니다. 이 기사에서는 개발자가 잠재적인 성능 문제를 발견하고 해결하는 데 도움이 되는 Laravel 성능 최적화 기술을 탐구합니다. 1. Eloquent 지연 로딩을 사용한 데이터베이스 쿼리 최적화 Eloquent를 사용하여 데이터베이스를 쿼리할 때 다음을 피하세요.

Hibernate는 데이터베이스 쿼리 성능을 어떻게 최적화합니까? Hibernate는 데이터베이스 쿼리 성능을 어떻게 최적화합니까? Apr 17, 2024 pm 03:00 PM

Hibernate 쿼리 성능을 최적화하기 위한 팁은 다음과 같습니다: 지연 로딩을 사용하여 컬렉션 및 관련 개체 로드를 연기하고, 일괄 처리를 사용하여 업데이트, 삭제 또는 삽입 작업을 결합하여 HQL 외부 연결을 사용하여 자주 쿼리되는 개체를 메모리에 저장합니다. 엔터티 및 관련 엔터티를 검색하고, SELECTN+1 쿼리 모드를 피하기 위해 쿼리 매개변수를 최적화합니다. 커서를 사용하여 블록의 대규모 데이터를 검색합니다.

iframe 로딩 이벤트를 방지하는 방법 iframe 로딩 이벤트를 방지하는 방법 Feb 19, 2024 am 08:02 AM

iframe 로딩 이벤트를 방지하는 방법 웹 개발에서는 iframe 태그를 사용하여 다른 웹 페이지나 콘텐츠를 삽입하는 경우가 많습니다. 기본적으로 브라우저가 iframe을 로드하면 로딩 이벤트가 트리거됩니다. 그러나 경우에 따라 iframe 로드를 지연하거나 로드 이벤트를 완전히 방지할 수도 있습니다. 이 기사에서는 코드 예제를 통해 이를 달성하는 방법을 살펴보겠습니다. 1. iframe 로딩 지연 iframe 로딩을 지연하려면 다음을 사용할 수 있습니다.

See all articles