overLIB 使用非常的简单,延时加载js代码提高速度

2019-07-13 作者:小鱼儿主页高手论坛   |   浏览(132)

延时加载js代码提高速度,具体内容如下所示:

本文主要包括三大方面,大家仔细学习。

本文实例讲解了原生JavaScript实现瀑布流布局详细代码,分享给大家供大家参考,具体内容如下

本文实例讲述了overlib用法。分享给大家供大家参考,具体如下:

如果网页中存在大量的javascript代码会极大的影响网页的访问速度,下面就简单介绍一下如何处理此问题。

1、导航栏中的表单 导航栏中的表单不是使用 Bootstrap 表单 章节中所讲到的默认的 class,它是使用 .navbar-form class。这确保了表单适当的垂直对齐和在较窄的视口中折叠的行为。使用对齐方式选项(这将在组件对齐方式部分进行详细讲解)来决定导航栏中的内容放置在哪里。

效果图:

overLIB 是一个生成提示框与弹出菜单等页面效果的一段非常优秀的JS代码。

一.延时加载js文件:

下面的实例演示了这点:

图片 1

它可以简单的通过设置一些参数或命令来改变弹出页面的款式、皮肤与形状,不但如此,它还提供了非常简单的扩展功能,来足客户的不同需求。

可以使用定时器函数setTimeout()让外部的js文件延迟加载,例如:

<!DOCTYPE html> 
<html> 
<head> 
 <title>Bootstrap 实例 - 默认的导航栏</title> 
 <link href="bootstrap.min.css" rel="stylesheet"> 
 <script src="jquery-2.1.4.min.js"></script> 
 <script src="bootstrap.min.js"></script> 
</head> 
<body> 
<nav class="navbar navbar-default" role="navigation"> 
 <div class="navbar-header"> 
 <a class="navbar-brand" href="#">林炳文在此~</a> 
 </div> 
 <div> 
 <ul class="nav navbar-nav"> 
  <li class="active"><a href="#">导航一</a></li> 
  <li><a href="#">导航二</a></li> 
  <li class="dropdown"> 
  <a href="#" class="dropdown-toggle" data-toggle="dropdown"> 
  下拉菜单 
  <b class="caret"></b> 
  </a> 
  <ul class="dropdown-menu"> 
  <li><a href="#">我是谁呢?</a></li> 
  <li><a href="#">我也不知道</a></li> 
  <li><a href="#">你是谁呢?</a></li> 
  <li class="divider"></li> 
  <li><a href="#">分离的链接</a></li> 
  <li class="divider"></li> 
  <li><a href="#">另一个分离的链接</a></li> 
  </ul> 
  </li> 
 </ul> 
 </div> 
 <div> 
 <form class="navbar-form navbar-left" role="search"> 
  <div class="form-group"> 
  <input type="text" class="form-control" placeholder="Search"> 
  </div> 
  <button type="submit" class="btn btn-default">搜一下</button> 
 </form> 
 </div> 
</nav> 
</body> 
</html> 

具体代码:

overLIB 使用非常的简单。

<script type="text/javascript" src="" id="my"></script> 
<script type="text/javascript"> 
var js=document.getElementById("my"); 
function addjs(){
 js.src="js/js.js"; 
}
setTimeout(addjs,3000);
</script>

效果:

window.onload=function(){

  waterfall('main','pin');

  var dataInt={'data':[{'src':'1.jpg'},{'src':'2.jpg'},{'src':'3.jpg'},{'src':'4.jpg'}]};

  window.onscroll=function(){
    if(checkscrollside()){
      var oParent = document.getElementById('main');// 父级对象
      for(var i=0;i<dataInt.data.length;i  ){
        var oPin=document.createElement('div'); //添加 元素节点
        oPin.className='pin';          //添加 类名 name属性
        oParent.appendChild(oPin);       //添加 子节点
        var oBox=document.createElement('div');
        oBox.className='box';
        oPin.appendChild(oBox);
        var oImg=document.createElement('img');
        oImg.src='./images/' dataInt.data[i].src;
        oBox.appendChild(oImg);
      }
      waterfall('main','pin');
    };
  }
}


/*
  parend 父级id
  pin 元素class
*/
function waterfall(parent,pin){
  var oParent=document.getElementById(parent);// 父级对象
  var aPin=getClassObj(oParent,pin);// 获取存储块框pin的数组aPin
  var iPinW=aPin[0].offsetWidth;// 一个块框pin的宽
  var num=Math.floor(document.documentElement.clientWidth/iPinW);//每行中能容纳的pin个数【窗口宽度除以一个块框宽度】
  oParent.style.cssText='width:' iPinW*num 'px;margin:0 auto;';//设置父级居中样式:定宽 自动水平外边距

  var pinHArr=[];//用于存储 每列中的所有块框相加的高度。
  for(var i=0;i<aPin.length;i  ){//遍历数组aPin的每个块框元素
    var pinH=aPin[i].offsetHeight;
    if(i<num){
      pinHArr[i]=pinH; //第一行中的num个块框pin 先添加进数组pinHArr
    }else{
      var minH=Math.min.apply(null,pinHArr);//数组pinHArr中的最小值minH
      var minHIndex=getminHIndex(pinHArr,minH);
      aPin[i].style.position='absolute';//设置绝对位移
      aPin[i].style.top=minH 'px';
      aPin[i].style.left=aPin[minHIndex].offsetLeft 'px';
      //数组 最小高元素的高   添加上的aPin[i]块框高
      pinHArr[minHIndex] =aPin[i].offsetHeight;//更新添加了块框后的列高
    }
  }
}

/*
  通过父级和子元素的class类 获取该同类子元素的数组
*/
function getClassObj(parent,className){
  var obj=parent.getElementsByTagName('*');//获取 父级的所有子集
  var pinS=[];//创建一个数组 用于收集子元素
  for (var i=0;i<obj.length;i  ) {//遍历子元素、判断类别、压入数组
    if (obj[i].className==className){
      pinS.push(obj[i]);
    }
  };
  return pinS;
}

/*
  获取 pin高度 最小值的索引index
*/
function getminHIndex(arr,minH){
  for(var i in arr){
    if(arr[i]==minH){
      return i;
    }
  }
}

/*
  判断加载图片的条件
*/
function checkscrollside(){
  var oParent=document.getElementById('main');
  var aPin=getClassObj(oParent,'pin');
  var lastPinH=aPin[aPin.length-1].offsetTop Math.floor(aPin[aPin.length-1].offsetHeight/2);//创建【触发添加块框函数waterfall()】的高度:最后一个块框的距离网页顶部 自身高的一半(实现未滚到底就开始加载)
  var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;//注意解决兼容性
  var documentH=document.documentElement.clientHeight;//页面高度
  return (lastPinH<scrollTop documentH)?true:false;//到达指定高度后 返回true,触发waterfall()函数
}

一、在<head></head> 标签内添加:

以上代码可以实现js代码咋3秒之后再加载,这样可以在一定程度上提高速度。

图片 2

以上就是本文的全部内容,希望对大家实现瀑布流布局有所帮助。

复制代码 代码如下:

二.将js代码放到网页内容的后面:

黑色效果

您可能感兴趣的文章:

  • 原生js实现瀑布流布局
  • 深入学习js瀑布流布局
  • 纯js实现瀑布流布局及ajax动态新增数据
  • javascript瀑布流布局实现方法详解
  • 基于JavaScript实现瀑布流布局(二)
  • 基于JavaScript实现瀑布流布局
  • 原生JS实现美图瀑布流布局赏析
  • 原生JS实现响应式瀑布流布局
  • 解析瀑布流布局:JS 绝对定位的实现
  • JavaScript瀑布流布局实现代码

<script type="text/javascript" src="overlib.js"><!-- overLIB (c) Erik Bosrup --></script>

本文由小鱼儿玄机30码发布于小鱼儿主页高手论坛,转载请注明出处:overLIB 使用非常的简单,延时加载js代码提高速度

关键词: 小鱼儿玄机30码