使用 lazysizes 延迟加载背景图像
Lazyload background-image with lazysizes
我想用库 http://afarkas.github.io/lazysizes/
加载背景图像 "lazy"
他们确实提到可以延迟加载 "anything" 。但是整个文档就是那个:
<div data-ride="carousel" data-script="assets/js/bootstrap.min.js" class="carousel lazyload">
<!-- widget content -->
<div>
而且我不知道如何将其用于背景图像。有人有这方面的经验吗?
要使用 lazysizes 加载背景图像,请使用 data-bg
属性
import "lazysizes/plugins/unveilhooks/ls.unveilhooks";
用法示例:
<div class="lazyload" data-bg="/path/to/image.jpg"></div>
如果要加载图像作为背景,请遵循此 doc。
这是lazysizes
的插件
如前所述,您需要添加一些插件才能做到这一点。
这是我用于所有项目的配置。
所需的 lazysizes 插件:
- respimg polyfill(仅在不支持respimg的浏览器中需要)
- bgset这是核心插件
您可以通过这种方式设置自定义断点
window.lazySizesConfig = window.lazySizesConfig || {};
window.lazySizesConfig.customMedia = {
'--small' : '(max-width: 576px)',
'--medium' : '(max-width: 768px)'
};
这里是标记
<div class="lazyload" data-bgset="URL-OF-SMALL-IMAGE[--small] URL-OF-MEDIUM-IMAGE[--medium] | URL-OF-FULL-SIZE-IMAGE", data-sizes="auto")
如果你想使用lazyload加载背景图片只需要添加一小段代码(无需添加任何插件)-
//add simple support for background images:
document.addEventListener('lazybeforeunveil', function(e){
var bg = e.target.getAttribute('data-bg');
if(bg){
e.target.style.backgroundImage = 'url(' + bg + ')';
}
});
可能有人会觉得这很有用。就我而言,使用相同的库 - "lazysizes" 我不得不将 data-bg 更改为 data-bgset:
<div class="lazyload" data-bgset=""></div>
验证 Lazyload 的版本。
适用于此的版本:
<div class="lazy" data-bg="/path/to/image.jpg"></div>
是:
<script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload@17.6.1/dist/lazyload.min.js"></script>
ps: 别忘了插话
var lazyLoadInstance = new LazyLoad({
elements_selector: ".lazy",
load_delay: 100,
effect : "fadeIn"
// ... more custom settings?
});
我想用库 http://afarkas.github.io/lazysizes/
加载背景图像 "lazy"
他们确实提到可以延迟加载 "anything" 。但是整个文档就是那个:
<div data-ride="carousel" data-script="assets/js/bootstrap.min.js" class="carousel lazyload">
<!-- widget content -->
<div>
而且我不知道如何将其用于背景图像。有人有这方面的经验吗?
要使用 lazysizes 加载背景图像,请使用 data-bg
属性
import "lazysizes/plugins/unveilhooks/ls.unveilhooks";
用法示例:
<div class="lazyload" data-bg="/path/to/image.jpg"></div>
如果要加载图像作为背景,请遵循此 doc。 这是lazysizes
的插件如前所述,您需要添加一些插件才能做到这一点。 这是我用于所有项目的配置。
所需的 lazysizes 插件:
- respimg polyfill(仅在不支持respimg的浏览器中需要)
- bgset这是核心插件
您可以通过这种方式设置自定义断点
window.lazySizesConfig = window.lazySizesConfig || {};
window.lazySizesConfig.customMedia = {
'--small' : '(max-width: 576px)',
'--medium' : '(max-width: 768px)'
};
这里是标记
<div class="lazyload" data-bgset="URL-OF-SMALL-IMAGE[--small] URL-OF-MEDIUM-IMAGE[--medium] | URL-OF-FULL-SIZE-IMAGE", data-sizes="auto")
如果你想使用lazyload加载背景图片只需要添加一小段代码(无需添加任何插件)-
//add simple support for background images:
document.addEventListener('lazybeforeunveil', function(e){
var bg = e.target.getAttribute('data-bg');
if(bg){
e.target.style.backgroundImage = 'url(' + bg + ')';
}
});
可能有人会觉得这很有用。就我而言,使用相同的库 - "lazysizes" 我不得不将 data-bg 更改为 data-bgset:
<div class="lazyload" data-bgset=""></div>
验证 Lazyload 的版本。
适用于此的版本:
<div class="lazy" data-bg="/path/to/image.jpg"></div>
是:
<script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload@17.6.1/dist/lazyload.min.js"></script>
ps: 别忘了插话
var lazyLoadInstance = new LazyLoad({
elements_selector: ".lazy",
load_delay: 100,
effect : "fadeIn"
// ... more custom settings?
});