懒加载 页面运行到浏览器,图片是不立即进行加载的。
懒加载的优势 
保证图片一定能够加载成功,防止破图,增强用户体验。 
有利于性能优化。 
 
懒加载的实现 
在css中设置占位背景图,并将图片设置为display:none; 
将真实的图片的地址放到结构的自定义属性上,不直接给到图片的src; 
保证这个图片的地址是正确的,在赋值给这个图片的src; 
 
首屏页面 保证图片资源一定能够加载成功才去加载当前这张图片,即延迟一定时间去展示图片。
步骤:
先弄一个占位背景图; 
默认图片是隐藏的; 
创建一个临时的图片; 
将真实图片的地址赋值给当前这个临时图片的src; 
判断当前这个图片资源是否加载成功; 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <style>     * {         padding : 0 ;         margin : 0 ;     }     .box  {         width : 200px ;         height : 200px ;                  background : url (./img/loading.gif ) no-repeat center #efefef ;         margin : 50px  auto;     }     .box  img  {         width : 100% ;         height : 100% ;         border : none;                           display : none;     } </style> 
 
1 2 3 <div  class ="box" >     <img  src =""  trueSrc ="./img/0.jpg"  class ="img" >  </div > 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 var  box = document .getElementsByClassName ('box' )[0 ];var  img = document .getElementsByClassName ('img' )[0 ];window .setTimeout (imgLazy, 1000 );function  imgLazy ( ) {         var  oImg = document .createElement ("img" );          oImg.src  = img.getAttribute ('trueSrc' );          oImg.onload  = function  ( ) {         img.src  = this .src ;         img.style .display  = "block" ;     } } 
 
其他屏页面 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <style>       * {           padding : 0 ;           margin : 0 ;       }       html  {           height : 2000px ;       }       .box  {           width : 200px ;           height : 200px ;           margin : 1000px  auto;                      background : url (./img/loading.gif ) no-repeat center #ededed ;       }       .box  img  {           width : 100% ;           height : 100% ;           border : none;                                 display : none;       }   </style> 
 
1 2 3 <div  class ="box" >       <img  src =""  trueSrc ="./img/0.jpg"  class ="img" >    </div >  
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 var  box = document .getElementsByClassName ('box' )[0 ];var  img = document .getElementsByClassName ('img' )[0 ];var  winH = document .documentElement .clientHeight ;window .onscroll  = function  ( ) {    var  scrollT = document .documentElement .scrollTop ;               if  (winH + scrollT >= img.parentNode .offsetTop  + img.parentNode .clientHeight ) {         imgLazy ();     } } function  imgLazy ( ) {         var  oImg = document .createElement ('img' );           oImg.src  = img.getAttribute ('trueSrc' );           oImg.onload  = function  ( ) {         img.src  = this .src ;         img.style .display  = "block" ;     } }