懒加载代码的思路,并说说什么是懒加载,怎么实现的?
时间: 2024-02-17 21:05:00 浏览: 93
懒加载(Lazy Loading)是一种页面优化技术,它将页面中的资源(如图片、视频等)延迟加载,即在页面初始加载时不会加载所有的资源,而是当用户需要访问某个资源时再进行加载。这样可以减少页面的初始加载时间,提升用户的体验。
实现懒加载的思路是,将页面中的资源的src属性设置为占位符(如data-src),并在资源进入可视区域时再将占位符替换成真正的资源地址。可以通过监听滚动事件来判断资源是否进入可视区域。
以下是一个简单的懒加载示例:
```html
<img data-src="image.jpg" alt="image">
```
```javascript
window.addEventListener('scroll', function() {
var images = document.querySelectorAll('img[data-src]');
for (var i = 0; i < images.length; i++) {
if (isInViewport(images[i])) {
images[i].src = images[i].getAttribute('data-src');
images[i].removeAttribute('data-src');
}
}
});
function isInViewport(element) {
var rect = element.getBoundingClientRect();
return (
rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
rect.right <= (window.innerWidth || document.documentElement.clientWidth)
);
}
```
这段代码首先监听了滚动事件,然后查找所有带有data-src属性的图片元素,当图片元素进入可视区域时,将data-src属性替换成真正的资源地址。isInViewport函数用来判断元素是否进入可视区域。
阅读全文