• 原生javascript代码懒加载


    1.先定义需要懒加载的样式;

    class="lazyload"

    2.设置初始透明度为0.1;

    .lazyload{

      filter: Alpha(opacity=10); -moz-opacity:0.1; opacity:0.1;

    }

    3.把真正需要加载的真实地址放在data-src属性中;

    src="懒加载图片.png" data-src="真实图片";

    4.

    前端开发周大伟同学JavaScript代码编写:

    // 懒加载
    function lazyLoad(){ 
      if (window.addEventListener){
        window.addEventListener("load",loading);
        window.addEventListener("click",loading);
        window.addEventListener("scroll",function(){
          setTimeout(loading,100);
      });
      } else if (window.attachEvent) {
        window.attachEvent("onload",loading);
        window.attachEvent("onclick",loading);
        window.attachEvent("onscroll",function(){
          setTimeout(loading,100);
        });
      }
    }

    function loading(){
      var lazyload=document.getElementsByClassName("lazyload");
      for(var i=0;i<lazyload.length;i++){
        var _this=lazyload[i];
        var clientHeight=document.documentElement.clientHeight || document.body.clientHeight;
        var scrollTop=document.documentElement.scrollTop || document.body.scrollTop;
        if(clientHeight+scrollTop>=offsetTop(_this)){
          _this.setAttribute("src",_this.getAttribute("data-src"));
          _this.style.opacity=1;
        }
      }
    }

    //获取offsetTop和offsetLeft值的js代码(兼容)
    function offsetTop( elements ){
      var top = elements.offsetTop;
      var parent = elements.offsetParent;
      while( parent != null ){
        top += parent.offsetTop;
        parent = parent.offsetParent;
      };
      return top;
    };

  • 相关阅读:
    第五篇
    第四篇
    PAT Basic 1094 谷歌的招聘 (20 分)
    PAT Basic 1093 字符串A+B (20 分)
    Dubbo 04 服务化最佳实现流程
    Dubbo 03 Restful风格的API
    Dubbo 02 微信开发
    Dubble 01 架构模型&start project
    PAT Basic 1020 月饼 (25 分)
    PAT Basic 1019 数字黑洞 (20 分)
  • 原文地址:https://www.cnblogs.com/zhoudawei/p/6970725.html
Copyright © 2020-2023  润新知