Heim  >  Artikel  >  Web-Frontend  >  Welche Methoden gibt es zum verzögerten Laden von Bildern?

Welche Methoden gibt es zum verzögerten Laden von Bildern?

百草
百草Original
2023-11-13 14:41:211025Durchsuche

图片懒加载的方法有基于Intersection Observer的懒加载、使用scroll事件监听的懒加载和使用setTimeout的懒加载等。详细介绍:1、基于Intersection Observer的懒加载,Intersection Observer是浏览器提供的一种API,可以监测元素是否进入了用户的视口;2、使用scroll事件监听的懒加,通过监听滚动事件来判断等等。

Welche Methoden gibt es zum verzögerten Laden von Bildern?

本教程操作系统:windows10系统、DELL G3电脑。

图片懒加载是一种优化网页性能的技术,它可以延迟加载页面上的图片,只有当图片即将出现在用户的视口中时才加载它们。这样可以减少页面的加载时间,提高用户体验和网站的整体性能。在本文中,我将介绍几种常用的图片懒加载方法。

1. 基于Intersection Observer的懒加载:

Intersection Observer是浏览器提供的一种API,可以监测元素是否进入了用户的视口。通过使用Intersection Observer,我们可以监听图片元素是否可见,当图片进入视口时再加载它们。这种方法不仅简单易用,而且性能较好。

以下是一个使用Intersection Observer实现图片懒加载的示例代码:

// 创建一个Intersection Observer实例
const observer = new IntersectionObserver((entries, observer) => {
  entries.forEach((entry) => {
    if (entry.isIntersecting) {
      // 当图片进入视口时加载它
      entry.target.src = entry.target.dataset.src;
      observer.unobserve(entry.target);
    }
  });
});
// 获取所有需要懒加载的图片元素,并添加观察者
const lazyImages = document.querySelectorAll('.lazy');
lazyImages.forEach((lazyImage) => {
  observer.observe(lazyImage);
});

2. 使用scroll事件监听的懒加载:

这种方法是通过监听滚动事件来判断图片是否进入视口。当用户滚动页面时,检查每张图片的位置是否在视口中,如果是,则加载图片。

以下是一个使用scroll事件监听实现图片懒加载的示例代码:

window.addEventListener('scroll', () => {
  const lazyImages = document.querySelectorAll('.lazy');
  lazyImages.forEach((lazyImage) => {
    if (lazyImage.getBoundingClientRect().top <= window.innerHeight && lazyImage.getBoundingClientRect().bottom >= 0) {
      lazyImage.src = lazyImage.dataset.src;
      lazyImage.classList.remove(&#39;lazy&#39;);
    }
  });
});

3. 使用setTimeout的懒加载:

这种方法是通过设置一个延迟时间来加载图片。当页面加载完成后,先加载一张占位图片,然后使用setTimeout来延迟加载真实图片,以达到懒加载的效果。

以下是一个使用setTimeout实现图片懒加载的示例代码:

window.addEventListener(&#39;load&#39;, () => {
  const lazyImages = document.querySelectorAll(&#39;.lazy&#39;);
  lazyImages.forEach((lazyImage) => {
    lazyImage.src = lazyImage.dataset.placeholder;
    setTimeout(() => {
      lazyImage.src = lazyImage.dataset.src;
      lazyImage.classList.remove(&#39;lazy&#39;);
    }, 1000); // 设置延迟时间,单位为毫秒
  });
});

总结:

图片懒加载是一种有效的优化网页性能的方法,可以减少页面加载时间,提高用户体验。本文介绍了几种常用的图片懒加载方法,包括基于Intersection Observer的懒加载、使用scroll事件监听的懒加载和使用setTimeout的懒加载。开发者可以根据实际需求选择适合自己的方法来实现图片懒加载。

Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es zum verzögerten Laden von Bildern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn