我在用着slick.js http://kenwheeler.github.io/slick/构建一个旋转木马。但是,即使我将属性从src
to data-lazy
在我滚动到该图像之前,图像仍然会被加载。我怀疑这是因为我有srcset
在我的图像中标记。我的问题是如何防止浏览器加载响应式图像或如何正确地延迟加载响应式图像。
这是我的 img 标签的示例
<img data-lazy="better_me.jpg" srcset="better_me.jpg 400w, better_me.jpg 200w" class="avatar photo avatar-200" alt="better_me" width="200" height="200" sizes="(min-device-resolution: 1.6) 400px, 200px">
惰性尺寸 https://github.com/aFarkas/lazysizes工作正常。然而,您需要将标记更改为类似这样的内容。
<img data-src="better_me.jpg" data-srcset="better_me2.jpg 400w, better_me.jpg 200w" class="avatar photo avatar-200 lazyload" data-sizes="auto" alt="better_me" width="200" height="200" />
Note srcset
更改为data-srcset
and data-lazy
更改为data-src
。此外,您还必须添加lazyload 类。
Your sizes
属性没有太大意义。也许您想使用 x 描述符?或者简单地使用sizes="200px"
?我不知道。我只是将其切换为data-sizes="auto"
,所以它会自动为您计算。 (但在这种情况下,在加载图像之前,图像尺寸必须是可计算的。)
lazySizes 确实加载图像before他们进入视野。这对于用户体验来说是一个很大的提升。将某些内容滚动到视图中的用户不想等待。延迟加载程序在图像已在视图中后开始下载图像会破坏用户体验。
lazySizes 的一个好处是,这个惰性加载程序会检查浏览器当前是否正在大量下载,并根据这一事实决定是仅下载视图图像还是预加载近视图图像。
但如果你不想要这个,你可以通过设置“lazySizes”来控制它expand
and expFactor
选项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)