今天写页面的时候发现,浏览器渲染页面的时候先渲染图片,在渲染文字,这就影响视觉效果了。
搜了一圈,发现一个懒加载方法比较简单有效。
大致流程是图片src属性设置为空(src = “”),然后页面onload的时候,再给img添加src属性值。
1、html
<div class="single_bottom">
<img src="" alt="二维码">
</div>
2、css代码部分,设置img初始状态display: none,后面图片加载完成之后在显示出来,不然图片会有一个占位的框先出来,影响页面效果;
img{
display: none;
}
3、js代码如下,先把所有img的src属性值存在一个数组中,然后页面加载后,再给src加上
window.onload = function () {
var arrS =['img/s2.png','img/s3.png','img/s_btn_bg.png','img/s1.png'];
var imgA = document.getElementsByTagName('img');
for(var i = 0;i<imgA.length;i++){
imgA[i].setAttribute('src',arrS[i]);
}
$("img").on("load",function(){this.style.display="inline-block"})
}
完整代码如上,js写的比较初级,还在努力中。。。。。。