博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原生javascript代码懒加载
阅读量:5099 次
发布时间:2019-06-13

本文共 1431 字,大约阅读时间需要 4 分钟。

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;
};

转载于:https://www.cnblogs.com/zhoudawei/p/6970725.html

你可能感兴趣的文章
[D3] 13. Cleaner D3 code with selection.call()
查看>>
canvas移动端兼容性问题总结
查看>>
PTA 02-线性结构4 Pop Sequence (25分)
查看>>
JS --- 深拷贝/浅拷贝
查看>>
python 字符串最长公共前缀
查看>>
WordPress WP Super Cache插件远程PHP代码执行漏洞
查看>>
hdu 2412 Party at Hali-Bula (树形DP)
查看>>
【Android编译error】error: lambda capture 'this' is not used [-Werror,-Wunused-lambda-capture]
查看>>
javascript中showModalDialog和showModelessDialog的使用(转)
查看>>
linux iptables规则介绍
查看>>
【转】跟面试官聊.NET垃圾收集,直刺面试官G点
查看>>
并行编程1——什么是并行程序?
查看>>
快速判断
查看>>
小米范工具系列之十二:绿盟报告提取端口工具
查看>>
用户界面与业务逻辑的分离
查看>>
山东历史沿革 (zz)
查看>>
编程注意事项
查看>>
MySQL innodb中各种SQL语句加锁分析
查看>>
继续学习C:数字进制表示
查看>>
Java开发牛人十大必备网站
查看>>