懒加载

如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible实现

  function isVisible($node){
           var scrollHeight=$(window).scrollTop();//滚动条的高度
           var windowHeight=$(window).height();//浏览器窗口的高度
           var offsetHeight=$($node).offset().top;//元素到页面的顶部的偏移
           if(offsetHeight<scrollHeight+windowHeight&&offsetHeight>scrollHeight){
               return true;
           }else {
               return false;
           }
    }
 

当窗口滚动时,判断一个元素是不是出现在窗口可视范围。每次出现都在控制台打印 true 。用代码实现

  $(window).on('scroll',function($node){
          var scrollHeight=$(window).scrollTop();
          var windowHeight=$(window).height();
          var offsetHeight=$($node).offset().top;//$node是传入的元素
          if(offsetHeight<scrollHeight+windowHeight&&offsetHeight>scrollHeight) {
              console.log("true");
          }
      })

当窗口滚动时,判断一个元素是不是出现在窗口可视范围。在元素第一次出现时在控制台打印 true,以后再次出现不做任何处理。用代码实现

  function isLoad($node){
       $(window).on('scroll',function($node){
           var scrollHeight=$(window).scrollTop();
           var windowHeight=$(window).height();
           var offsetHeight=$($node).offset().top;
           if(offsetHeight<scrollHeight+windowHeight&&offsetHeight>scrollHeight){
               if($($node).attr('src')===$($node).attr('data-src')) {
                   return true;
               }else {
                   $($node).attr('src',$($node).attr('data-src'));
                   console.log('true');
               }
           }
       });
   }

图片懒加载的原理是什么?

如果网页的图片过多,全部加载的时候,会很慢,用户体验不好,为了使网页加载速度更快,我们就先加载出现在浏览器窗口的图片,不在窗口范围内的图片,等滚动到的时候再加载,这样页面的加载速度会提高很多。
实现原理是这样的,把图片的真实地址放到图片的一个自定义属性上,一般是data-src,图片的src放的是指向一张空白图片的地址,当页面加载时判断图片位置是否出现在了可视区域内。如果出现在可视区域了那么就把data-src的真实地址赋值给src,加载之后的图片不再做处理。

实现视频中的图片懒加载效果

预览
代码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible实现...
    _Dot912阅读 1,711评论 10 8
  • 1.如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible...
    GarenWang阅读 478评论 0 2
  • 饥人谷_李栋 定义 图片懒加载 阶段实现 如何判断图片在可视范围 代码思路 封装 懒加载抽离 曝光去重 总结 一、...
    xingkong_s阅读 777评论 5 7
  • 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible实现...
    饥人谷_全阅读 324评论 0 0
  • 题目1:如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisib...
    柚丶稚橙熟时阅读 176评论 0 0