做为一个有追求有信仰的程序员,作一个网站毫不是仅仅能用就好了,当咱们实现功能后,或者在写代码的过程当中就要考虑怎么去优化,一个网站要去优化,做为前端要考虑的是资源优化(减小 http 请求啊,固定图片压缩啊,精灵图合并啊,或者使用图标字体啊),安全问题(代码压缩丑化,存储 cookie 或者storage 时候加密啊),还有性能优化,资源优化的重中之重就是图片的优化,加载图片是很耗费资源的。正常状况下,当图片没有加载过来的时候,若是没有外层标签限制高度,会没有图片的位置,图片资源加载过来以后,开始下载,若是图片够大,图片会从头至尾慢慢显示,给人很是不舒服的感受。css
图片的优化其实如今有两种解决方案:html
固然了,若是想要更好的效果,要配合图片懒加载,就是当滚轮滚动到特定位置在加载图片,这篇文章重点是将第二种解决方案,图片从模糊到清晰,废话很少说,上代码前端
html部分程序员
<figure> <div class="image-wrap"> <img class="oldImage" src="https://img.findaily.cn/kol/201710/cstartMTZmODY5MTAtN2Q3OS00ZGNkLTk1YmMtMGNiNjVmOWYzNjU5XyNjcm9wLXdfMTgyOS1oXzEyMDAteF80Ni15XzAtcl8xIw==cend.jpg?x-oss-process=image/resize,p_10" data-src="https://img.findaily.cn/kol/201710/cstartMTZmODY5MTAtN2Q3OS00ZGNkLTk1YmMtMGNiNjVmOWYzNjU5XyNjcm9wLXdfMTgyOS1oXzEyMDAteF80Ni15XzAtcl8xIw==cend.jpg"> </div> </figure>
css部分web
figure .image-wrap { width: 500px; height: 312px; position: relative; overflow: hidden; } figure .image-wrap .oldImage { width: 100%; -webkit-filter: blur(10px); transition: all 0.5s }
js部分安全
var image = document.querySelector('.oldImage'), imageParentDom = image.parentNode, src = image.dataset.src; var newImage = document.createElement('img'); newImage.src = src; newImage.style.cssText = 'position: absolute;left:0;top:0;width:100%;z-index:-1'; newImage.onload = function () { imageParentDom.appendChild(newImage); setTimeout(() => { imageParentDom.removeChild(image); },500) }