图片懒加载也是比较常见的一种性能优化的方法,最近在用vue做一个新闻列表的客户端时也用到了,这里就简单介绍下实现原理和部分代码。
<image src='./../assets/default.png' :data-src='item.allPics' class='lazyloadimg'>
window.onscroll =_.throttle(this.watchscroll, 200);
watchscroll () {
var bodyScrollHeight = document.body.scrollTop;// body滚动高度
var windowHeight = window.innerHeight;// 视窗高度
var imgs = document.getElementsByClassName('lazyloadimg');
for (var i =0; i < imgs.length; i++) {
var imgHeight = imgs[i].offsetTop;// 图片距离顶部高度
if (imgHeight < windowHeight + bodyScrollHeight) {
imgs[i].src = imgs[i].getAttribute('data-src');
img[i].className = img[i].className.replace('lazyloadimg','')
}
}
}
document.body.scrollTop > window.innerHeight
window.scrollY + window.innerHeight > document.body.offsetHeight
因篇幅问题不能全部显示,请点此查看更多更全内容