如题,背景图片改如何优先加载。
现在看到每次加载图片都是在页面内容加载之后加载,中间还能看到白色的背景颜色。
如何修改才能看不到白色的这个中间过程?
有几个思路吧
var img = new Image();
img.onload = function() {
// 跳转到有背景图片的路由
}
img.src = (你的背景图片url)
这种方法把图片资源请求到本地,缓存到浏览器。下一次访问这张图片时是从本地缓存拿的图片,就不会有网络缓慢加载的问题了。缺点是:并没有加快渲染速度,可能要改流程(多加一个loading页面)
暂时能想到这些
可以把其他的图片的src改个名字。
拿个Image对象加载图片。这样和背景是同时加载。
在img的onload里面再把其他图片的src换成真的地址。
<div style="background-image:url(/s/a.png)">
<img src="/s/a.png" onload="loadOther()"/>
<img data-src="/s/b.png"/>
<img data-src="/s/c.png"/>
<img data-src="/s/d.png"/>
<img/>
</div>
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
5 回答2.2k 阅读
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答837 阅读✓ 已解决
3 回答2.6k 阅读
图片比较大的时候,即使先发请求,也可能最后返回。
可以考虑先显示一个低质量的背景图,然后用js加载原图后进行替换。