首页 > 代码库 > 页面图片懒加载

页面图片懒加载

一、页面滚动加载图片的理解

当一个网页含有大量的图片的时候,往往在打开页面的加载的很慢,如现在的大型电商、新闻、微博等,如果一下加载整个网页的所有图片,那会是一个缓慢的过程,要想快速的浏览网页,我们这时候就需要用到了在滚动或滑动页面的时候加载图片的方法。即图片懒加载!!!

 

二、实现懒加载的思路

当打开页面的时候,刚开始不给显示图片的位置放图片,等滚动或滑动到哪里的时候在获取图片。当然如果我们不给图片src中放图片,就会出现先找不到图片的提示,这样肯定是不行的。

         所以我们在放图片的位置刚开始让一张1像素的图片作为初始的图片代替真正的图片。等滚动或滑动到浏览器可视区域的时候在动态的替换丢url的地址,这里用到js替换。

   如:<img data-url="img/4.png" src="img/pix.png" />

这里的pix.png就是一张1px的图片,至于data-url文档上说这是一个H5的新属性。这里就存的是初始的时候1像素的图片。

我们在用如下方法:

$(‘img ‘).data(‘url‘); //使用 data()方法获得里面的数据

三、所用到的知识

  1、如何获取浏览器的可视高度

     var windHeight=$(window).height();//获得浏览器的可视高度

  2、如何获得滚动条相对于顶部的高度

     var  scrollTop=$(window).scrollTop;//获得滚动条相对于顶部的高度

  3、如何获得每张图片想对于浏览器顶部的高度

      var imgTop=$(‘img‘).offset().top;//获得元素相对于顶部的高度

 4、如何判断元素出现在了浏览器的可视区域内

      imgTop-windHeight<scrollTop?   元素相对顶部的高度-浏览器可视区域的高度<小于滚动条到顶部的高度   成立就代表出现:不成立就没出现

  5、怎样排除首屏的图片

      imgTop-windHright>0//排除首屏图片   元素到顶部的距离  - 减去  浏览器的可视高度

  6、排除已经加载的图片

      $(this).attr(‘src‘)!=$(this).data(‘url‘);//排除已经加载的图片

 

jq代码

   技术分享

 

 

 

页面图片懒加载