• 图片懒加载插件


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>利用图片延迟加载来优化页面性能(jQuery)</title>
    <link rel="stylesheet" href="http://www.feelcss.com/public-css/reset.css">
    <style type="text/css">
    .page-info { padding:8px 15px; background:#fcea9e; border-bottom:1px solid #b6bac0; font:normal 16px Georgia; }
    .page-info h1 { float:left; }
    .page-info a { font-weight:bold; color:#222; }  
    .return-article { float:right; }
    .return-article h2{ display:inline; }
    
    body{ height:2700px; }
    .a1{ margin:40px; 1000px; background:#e6e6e6; }
    </style>
    </head>
    <body>
    <div class="page-info clearfix">
      <h1><a href="http://www.feelcss.com" title="回到 Hey@feelcss 首页">Hey@feelcss</a></h1>
      <div class="return-article">返回文章:<h2><a href="http://www.feelcss.com/picture-lazy-loading-to-optimize-page-performance.html" title="利用图片延迟加载来优化页面性能(jQuery)">利用图片延迟加载来优化页面性能(jQuery)</a></h2></div>
    </div>
    
    <script type="text/javascript">
    for(var i=0; i<40; i++){
      document.write("<p style='color:#999;font-size:12px;'>【请往下拉动滚动条】</p>");
    }
    </script>
    
    <div class="a1">
      <img class="lazyLoading" data-url="http://www.feelcss.com/demo/picture-lazy-loading/022051.42796807.jpg">
      <noscript><img src="http://www.feelcss.com/demo/picture-lazy-loading/022051.42796807.jpg">替换方案</noscript>
    </div>
    <div class="a1">
      <img class="lazyLoading" data-url="http://www.feelcss.com/demo/picture-lazy-loading/141500.94376871.jpg">
      <noscript><img src="http://www.feelcss.com/demo/picture-lazy-loading/141500.94376871.jpg">替换方案</noscript>
    </div>
    <div class="a1">
      <img class="lazyLoading" data-url="http://www.feelcss.com/demo/picture-lazy-loading/085825.73643922.jpg">
      <noscript><img src="http://www.feelcss.com/demo/picture-lazy-loading/085825.73643922.jpg">替换方案</noscript>
    </div>
    <div class="a1">
      <img class="lazyLoading" data-url="http://www.feelcss.com/demo/picture-lazy-loading/022652.83797841.jpg">
      <noscript><img src="http://www.feelcss.com/demo/picture-lazy-loading/022652.83797841.jpg">替换方案</noscript>
    </div>
    <div class="a1">
      <img class="lazyLoading" data-url="http://www.feelcss.com/demo/picture-lazy-loading/090002.79394226.jpg">
      <noscript><img src="http://www.feelcss.com/demo/picture-lazy-loading/090002.79394226.jpg">替换方案</noscript>
    </div>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://www.feelcss.com/demo/picture-lazy-loading/jquery.imgLazyLoading.js"></script>
    <script type="text/javascript">
    $(".lazyLoading").imgLazyLoading({
      url : "data-url",
      fadeIn : 400
    });
    </script>
    </body>
    </html>
    

      

    /*
    * 基于jQuery的图片延迟加载插件
    * by Hey@feelcss (http://www.feelcss.com/)
    */
    ;(function($){
      $.fn.imgLazyLoading = function(options){
        //定义需要的参数的初始值,并合并options对象到set对象
        var set = $.extend({
          url : "data-url",
          fadeIn : 0
        }, options || {});
        var cache = [];
    
        $(this).each(function(){
          var nodeName = this.nodeName.toLowerCase();
          var url = $(this).attr(set.url);
          //获取每个元素的信息
          var data = {
            obj : $(this),
            url : url,
            tag : nodeName
          }
          cache.push(data);
        });
    
        var lazyLoading = function(){
          $.each(cache,function(i, e){
            var obj = e.obj,
            url = e.url,
            tag = e.tag;
            if(obj){
              var winHeight = $(window).height(); //当前窗口高度
              var scrolltop = $(window).scrollTop(); //滚动条偏移高度
              var oTop = obj.offset().top; //图片相对高度
              //判断是否在当前窗口内
              if((oTop-scrolltop) > 0 && (oTop-scrolltop) < winHeight){
                if(tag === "img"){
                  if(set.fadeIn){
                  //渐出效果
                  obj.fadeIn(set.fadeIn);
                  }
                  //给src属性赋值
                  obj.attr("src", url);
                }else{
                  return false;
                }
                e.obj = null;
              }
            }
          });
        }
        //加载后立即执行
        lazyLoading();
        //执行滚动,触发事件
        $(window).bind("scroll", lazyLoading);
      };
    })(jQuery);
    

      看完demo感觉不错,先整过来再说

  • 相关阅读:
    git版本超前了N个版本且落后了N个版本的解决办法
    CSS3与动画有关的属性transition、animation、transform对比
    禁止选中文本JS
    页面加载中jquery逐渐消失效果实现
    localstorage和sessionstorage上手使用记录
    点击除元素以外的任意地方隐藏元素js
    js准确获取当前页面url网址信息
    301、404、200、304、500HTTP状态
    对事件委托绑定click的事件的解绑
    RabbitMQ的安装和使用Python连接RabbitMQ
  • 原文地址:https://www.cnblogs.com/wysdddh/p/7132990.html
Copyright © 2020-2023  润新知