javascript - 如何将图像从低分辨率加载到高分辨率?
解决方案
那么它是怎样工作的?
那么你需要2张图片。1 具有超低质量和正常图像。
您设置了低质量src
并延迟加载其他图像。
这就是它背后的所有魔力。
最初你filter: blur(5px)
在图像上设置,当它完成加载高质量图像时,你取消设置模糊。
一个很好的延迟加载库是https://github.com/verlok/vanilla-lazyload
请注意:您需要限制网络速度。您可以通过按 F12 使用 google chrome 执行此操作,转到Network
ans selectSlow 3G
然后启动代码片段
图像被缓存,因此它从缓存中加载。在运行代码段以查看转换之前,您需要清除缓存。
var lazyLoadInstance = new LazyLoad({
callback_loaded: (el) => {
el.style.setProperty("filter", "none")
}
});
img {
filter: blur(5px);
transition: filter 200ms;
}
<script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload@17.1.0/dist/lazyload.min.js"></script>
<img class="lazy" src="https://blogxon.com/5f1492591d873e4284aacdce/thumbnails/placeholder/1597094737252.jpeg" data-src="https://blogxon.com/5f1492591d873e4284aacdce/thumbnails/1597094737252.jpeg" />
推荐阅读
- c# - 有没有办法从 wpf Livecharts Graph 的图例中只删除一个 lineeries?
- google-bigquery - Bigquery 临时表位置 EU 而不是 US
- filter - 有没有办法使用 Lucene 过滤器删除所有特殊字符?
- javascript - React setState 回调不会更新状态
- pandas - 将 Dataframe 变成字典 Pandas
- javascript - 未捕获的 ReferenceError:我的 javascript 中未定义文本
- java - 哪个更有效率?为地图值的临时结果声明一个对象?还是直接从地图根中获取?
- c - 将结构数组传递给函数并在C中计算平均值?
- java - If multiple classes contain same code for error checking should I extract it into new class?
- java - java.lang.IllegalArgumentException:未注册的过滤器类后无法注册