美文网首页
懒加载拆分和基本封装

懒加载拆分和基本封装

作者: 书中有凉气 | 来源:发表于2017-01-02 14:14 被阅读0次

懒加载的基本逻辑就是在网页没有在视窗中出现的地方的图片等数据可以暂时不需要加载,提高网页载入速度和用户体验,等待图片出现在视窗中时,再去进行加载。
下面是如何判断div是否出现在视窗中
源码:

    <div class="see"></div>
    <script>
        var div=(function(){
            function see(p){
                $nodeH=p.height();
                $nodeoffset=p.offset().top;
                $windowH=$(window).height();
                $scrollTop=$(window).scrollTop();
                if($nodeoffset<$windowH+$scrollTop&&$nodeoffset+$nodeH>$scrollTop){
                    console.log('see');
                    //p.data('issee', true);
                }
                else{
                    console.log('cant find it');
                }
            }

            function scroll(p){
                $(window).on('scroll', function(){
                    //有时已经加载的图片不需要再去判断是否需要加载
                    //if(p.data('issee')){return}  
                    see(p);
                })
            }
            return {
                scroll:scroll
            }
        })()

        div.scroll($('.see'));
    </script>

样列

预览:
https://jirengu-inc.github.io/jrg-renwu8/homework/%E5%BC%A0%E8%BD%A9/renwu29-2.html
源码:

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src='http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js'></script>
  <style>
    .full{
      height: 6000px;
    }
    .pic{
      width:1080px;
      height: 1080px;
    }
  </style>
</head>
<body>
  <div class="full">
    ![](C:\Users\Administrator\Desktop\lazyload\1.jpg)
    ![](C:\Users\Administrator\Desktop\lazyload\2.jpg)
    ![](C:\Users\Administrator\Desktop\lazyload\3.jpg)
    ![](C:\Users\Administrator\Desktop\lazyload\4.jpg)
    ![](C:\Users\Administrator\Desktop\lazyload\5.jpg)
    ![](C:\Users\Administrator\Desktop\lazyload\6.jpg)
    ![](C:\Users\Administrator\Desktop\lazyload\7.jpg)
    ![](C:\Users\Administrator\Desktop\lazyload\8.jpg)
    ![](C:\Users\Administrator\Desktop\lazyload\9.jpg)
  </div>
  <script>
    var zhangxuan=(function(){
      function showimg(p){
        p.attr('src', p.attr('data-src'));
        p.data('isload', true);
      }

      function isimg(node){
        node.each(function(){
          var $node=$(this),
              $dscrollTop=$(document).scrollTop(),
              $wwidth=$(window).height(),
              $picoffsetTop=$node.offset().top;
          if(!!$node.data('isload')){            //优化已加载图片不执行
              return
            }
          else{
              if(($dscrollTop+$wwidth)>=$picoffsetTop){
                showimg($node);
              }
            }
        })
      }

      function bind(node){
        var clock;
        $(window).on('scroll', function(){
          if(clock){
            clearTimeout(clock);
          }
          clock=setTimeout(function(){    //优化滚轮停止时才执行
            isimg(node);
          }, 300)
        })
        // $(window).on('scroll', function(){
        //   isimg(node);
        //   console.log(1);
        // })
      }


      return{
        bind:bind
      }

    })()

    zhangxuan.bind($('.pic'));
  </script>
</body>
</html>

相关文章

  • 懒加载拆分和基本封装

    懒加载的基本逻辑就是在网页没有在视窗中出现的地方的图片等数据可以暂时不需要加载,提高网页载入速度和用户体验,等待图...

  • 懒加载

    知识点 webpack代码拆分动态倒入懒加载 1.懒加载 懒加载我们都知道,不即时加载所有资源,而是在需要的时候才...

  • 【Android】Fragment懒加载(只加载一次)

    Fragment懒加载 封装的支持以下的功能: 1.支持数据的懒加载并且只加载一次 2.提供 Fragment 可...

  • 懒加载的相关介绍

    懒加载的相关介绍 1.懒加载的基本 懒加载-----也成为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所...

  • 懒加载图片的实现及其原理

    懒加载的基本 懒加载--也叫延时加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其get方法:...

  • iOS-UI-懒加载

    原文找不到了 iOS-UI-懒加载 1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内...

  • 懒加载

    1.懒加载基本懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其get方法...

  • 懒加载

    1.懒加载基本懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其get方法...

  • iOS-----懒加载模式

    1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其gett...

  • iOS 开发之懒加载

    1.懒加载基本 懒加载 -- 也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其ge...

网友评论

      本文标题:懒加载拆分和基本封装

      本文链接:https://www.haomeiwen.com/subject/rouwvttx.html