美文网首页JS
懒加载初始版

懒加载初始版

作者: 匆匆那年_海 | 来源:发表于2019-01-23 12:22 被阅读5次

懒加载初始版

function getFixed(obj){
  //获取非行间属性
  function getStyle(obj,styleName){
    if (obj.currentStyle){
      return obj.currentStyle[styleName];
    }
    else{
      return getComputedStyle(obj,null)[styleName];
    }
  }
  //要获取图片相对网页顶部的距离,但图片有被定位的父级
  var iLeft=0; 
  var iTop=0;
  var oParent=obj;
  while(oParent){
    if (oParent.tagName=="HTML"){
      break;
    }
    iLeft+=oParent.offsetLeft;
    iTop+=oParent.offsetTop;
    if (oParent!=obj){
                    //offsetLeft不包括边框,因此要把边框加上
      iLeft+=parseInt(getStyle(oParent,"borderWidth"));
      iTop+=parseInt(getStyle(oParent,"borderWidth"));
    }
    oParent=oParent.offsetParent;
  }
  return [iLeft,iTop];//当 break 后itop就是图片相对网页顶部的距离
}
window.onload=window.onscroll=function (){

  var aImg=document.getElementsByTagName("img");

  var bodyScrollTop=document.body.scrollTop||document.documentElement.scrollTop;
  var scrollBottom=bodyScrollTop+document.documentElement.clientHeight;
  for (var i=0; i<aImg.length; i++){
    //此时说明这图片已经在可视区域内,应该开始加载了
    if (getFixed(aImg[i])[1]<=scrollBottom){
      aImg[i].src=aImg[i].getAttribute("_src");
    }
  }
}

相关文章

  • 懒加载初始版

    懒加载初始版

  • 一个懒加载Demo

    什么是懒加载 当一个实例,生成时并未初始化,只有在调用行为后才会被初始化,即为懒加载 代码 输出结果

  • 自定义刷新

    属性 初始化 懒加载 ScrollViewDidScroll方法 停止刷新

  • Using lazy properties in Swift

    懒加载让你可以在需要的时候才初始化, 而不是在初始化这个对象的时候就必须要。懒加载可以用来避免 optional ...

  • Swift懒加载

    Swift 懒加载小议 先来说一下懒加载的好处: 需要的时候初始化内存,对内存开销较小,节省内部资源 代码初始化放...

  • spring 非懒加载 bean初始化

    spring 非懒加载 bean初始化 跟进 beanFactory.preInstantiateSinglet...

  • 单例模式

    懒汉式 懒加载形式;加锁影响效率 饿汉式 非懒加载形式;没有加锁,执行效率会提高;类加载时就初始化,浪费内存。 双...

  • 音视频之视频采集

    视频采集 AVFoundation 完成视频采集,做个笔记吧. 初始化页面布局 懒加载需要用的对象 下面是懒加载的...

  • Android 在 ViewPager 中使用 Fragment

    我们先看一下效果: 首先,我们要知道什么是懒加载: 懒加载,就是先初始化控件,在用户可见的时候再加载数据。 为什么...

  • iOS 自定义控件

    一、代码 1、initWithFrame 初始化(懒加载),添加控件2、layoutSubViews 设置...

网友评论

    本文标题:懒加载初始版

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