【原生JS插件】LoadingBar页面顶部加载进度条

先展示一下已经实现的效果:

预览地址:http://dtdxrk.github.io/js-plug/LoadingBar/index.html

 

看到手机上的浏览器内置了页面的加载进度条,想用在pc上。

网上搜了一下,看到几种页面loading的方法:

1.在body头部加入loading元素,在body页脚写入脚本让loading元素消失。

2.基于jquery,在页面的不同位置插入脚本,设置滚动条的宽度。

简单分析一下:

第一个明显不是我想要的。

第二个要在body前加载jquery,然后还要使用到jquery的动画方法,性能肯定达不到最优的状态。

自己的解决方法:原生JS+css3

上面的方法2其实是可以使用的方法,但是我不想在页面前加载jquery,怎么办?

很简单,自己用原生的方法写一个。

给元素添加css3的动画属性,让他能在改变宽度的时候有动画效果。

transition:all 1s;-moz-transition:all 1s;-webkit-transition:all 1s;-o-transition:all 1s;

在页面插入一段style,里面有元素的css和一个css3动画暂停的类

.animation_paused{-webkit-animation-play-state:paused;-moz-animation-play-state:paused;-ms-animation-play-state:paused;animation-play-state:paused;
}

 

然后在页面里不同的位置调用方法,设置滚动条的宽度即可,需要注意的是方法的引用要在<head></head>里

<div id="top"></div>
<script>LoadingBar.setWidth(1)</script><div id="nav"></div>
<script>LoadingBar.setWidth(20)</script><div id="banner"></div>
<script>LoadingBar.setWidth(40)</script><div id="main"></div>
<script>LoadingBar.setWidth(60)</script><div id="right"></div>
<script>LoadingBar.setWidth(90)</script><div id="foot"></div>
<script>LoadingBar.setWidth(100)</script>

 

插件源码:

/*
========================================================================
LoadingBar 页面加载进度条
@auther LiuMing
@blog http://www.cnblogs.com/dtdxrk
demo 在body里填写需要加载的进度
LoadingBar.setWidth(number)
========================================================================
*/
var LoadingBar = {/*初始化*/init:function(){this.creatStyle();this.creatLoadDiv();},/*记录当前宽度*/width:0,/*页面里LoadingBar div*/oLoadDiv : false,/*开始*/setWidth : function(w){if(!this.oLoadDiv){this.init();}var oLoadDiv = this.oLoadDiv,width = Number(w) || 100;/*防止后面写入的width小于前面写入的width*/(width<this.width) ? width=this.width : this.width = width;oLoadDiv.className = 'animation_paused';oLoadDiv.style.width = width + '%';oLoadDiv.className = '';if(width === 100){this.over(oLoadDiv);}},/*页面加载完毕*/over : function(obj){setTimeout(function(){obj.style.display = 'none';},1000);},/*创建load条*/creatLoadDiv : function(){var div = document.createElement('div');div.id = 'LoadingBar';document.body.appendChild(div);this.oLoadDiv = document.getElementById('LoadingBar');},/*创建style*/creatStyle : function(){var nod = document.createElement('style'),   str = '#LoadingBar{transition:all 1s;-moz-transition:all 1s;-webkit-transition:all 1s;-o-transition:all 1s;background-color:#f90;height: 3px;width:0; position: fixed;top: 0;z-index: 99999;left: 0;font-size: 0;z-index:9999999;_position:absolute;_top:expression(eval(document.documentElement.scrollTop));}.animation_paused{-webkit-animation-play-state:paused;-moz-animation-play-state:paused;-ms-animation-play-state:paused;animation-play-state:paused;};'nod.type = 'text/css';//ie下nod.styleSheet ? nod.styleSheet.cssText = str : nod.innerHTML = str; document.getElementsByTagName('head')[0].appendChild(nod); }
}

 

转载于:https://www.cnblogs.com/dtdxrk/p/4165280.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/259620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qtp启动java程序_转: QTP六脉神剑之调用Java程序

查看( 1147 ) /评论( 21 )六脉神剑之调用程序0Xp1zLN_0版权声明&#xff1a;原创作品&#xff0c;转载请以链接方式注明出自http://www.51testing.com/?35&#xff0c;否则将追究法律责任。51Testing软件测试网y|X,taS51Testing软件测试网b;|w6I"g6oK本文出自songfun的51…

Linq 数据库操作(增删改查)

Linq数据库增删改查 Linq是一种查询语言&#xff0c;集成包含在formwork中&#xff0c;包含在C#语言中&#xff0c;它的作用是降低查询的门槛&#xff0c;提高开发效率&#xff0c;是我们必须掌握的技术之一&#xff0c;下面是我自己对linq数据库操作的方法&#xff0c;与大家…

第八章 Python 对象和类

一、什么是对象 在 Pyth 中&#xff0c;对象就是经过实例化的&#xff0c;具体可以操作的一组代码的组合&#xff1b; 对象一般包含数据&#xff08;变量&#xff0c;更习惯称之为属性 attribute&#xff09;&#xff0c;也包含代码&#xff08;函数&#xff0c;也称之为方法&a…

JS同名方法,

JS同名方法只会调用最后一个方法。 JS中同时绑定多个事件&#xff0c;先绑定的先调用。后绑定的后调用。转载于:https://www.cnblogs.com/daishuguang/p/4169718.html

Spring WebSocket初探2 (Spring WebSocket入门教程)

2019独角兽企业重金招聘Python工程师标准>>> WebSocket前端准备 SockJS&#xff1a; SockJS 是一个浏览器上运行的 JavaScript 库&#xff0c;如果浏览器不支持 WebSocket&#xff0c;该库可以模拟对 WebSocket 的支持&#xff0c;实现浏览器和 Web 服务器之间低延迟…

软件测试相关概念与分类

这是我看了有关软件测试的书的一些归纳与总结。 软件测试的核心是发现软件中的缺陷。测试是对软件质量的度量。 一、缺陷 缺陷&#xff0c;目前没有标准定义 。与缺陷相关的一组定义就有&#xff1a;软件错误、软件缺陷、软件故障、软件失效。 软件错误&#xff1a;在软件生存周…

excel SUBTOTAL函数使用详解

转自&#xff1a;http://www.kuqin.com/shuoit/20110524/91710.html 今天用Excel在进行业务统计时&#xff0c;遇到一个小问题&#xff0c;Google了一下&#xff0c;又学了一招。 一般人都会使用“自动筛选”功能&#xff0c;筛选完成后&#xff0c;会在表格左下角的状态栏中提…

java九宫格问题课程设计_课程设计九宫格数独.doc

课程设计九宫格数独中南民族大学管理学院学生课程设计报告课题名称&#xff1a; java课程设计选题名称&#xff1a; 九宫格数独年 级&#xff1a; 2009专 业&#xff1a; 信息管理与信息系统学 号&#xff1a;姓 名&#xff1a;指导教师&#xff1a;完成地点&#xff1a; 管理学…

Scrapy使用问题整理(转载)

转载自&#xff1a;http://blog.csdn.net/heu07111121/article/details/50832999最近尝试使用Scrapy进行数据抓取&#xff0c;并尝试在windows7 64位系统上安装scrapy&#xff0c;下面总结记录遇到两个问题和解决方法&#xff1a;scrapy官网的地址为&#xff1a;http://scrapy.…

英文Ubantu系统安装中文输入法

以前都是安装的中文Ubantu&#xff0c;但是有时候用命令行的时候中文识别不好&#xff0c;会出现错误&#xff0c;所以这次安装了英文版&#xff0c;但是安装后发现输入法不好用&#xff0c;于是就要自己安装输入法。 安装环境为Ubantu13.04 1.卸载Ubantu默认的ibus输入法 sudo…

控制文件初探

1、个数和位置的管理&#xff08;因为控制文件时在参数文件定义的&#xff0c;所以可以直接修改参数文件&#xff09; SPfile修改的步骤&#xff1a;a) 修改SPFILE参数control_filesb) 一致性关闭数据库c) 增加或减少控制文件d) 启动数据库使用SPFILEe) 验证结果 实验&#xff…

String类的使用 Part2

StringBuilder 类的使用 属性&#xff1a; namespace StringBuilderTest {class Program{static void Main(string[] args){StringBuilder s new StringBuilder("hello,world!");Console.WriteLine(s);//Length属性Console.WriteLine("s.Length{0}", s.Le…

JAVA项目怎么不是蓝色_解决IDEA创建maven项目时pom.xml没有变蓝的问题

如下所示&#xff1a;选中pom.xml&#xff0c;右键点击add as maven project&#xff0c;稍等片刻后就可以了补充知识&#xff1a;Idea导入maven项目不自动识别pom.xml*Idea导入maven项目不自动识别pom.xml*当在idea中导入maven项目时&#xff0c;不能自动识别pom文件解决方法&…

C# 6.0:Expression – Bodied Methods

Expression-bodied 方法是C# 6.0 中另一个能简化代码的特性。我们已经对lambda表达式将funciton和delegation关联起来的这种用法很熟悉了。Expression-bodied 将lambda 表达式的这种用法扩展到了方法上。 像下面代码所示&#xff0c;我们有一个GetTime() 方法返回一个格式化的时…

zabbix3.0安装

本次安装准备安装3.0的zabbix(LNMP)第一步 安装zabbix官方的zabbix源&#xff0c;地址如下&#xff1a;http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm安装zabbix的官方源rpm -ivh zabbix-release-3.0-1.el6.noarch.rpm第二步 使用yu…

android UI自动化测试工具Robotium VS NativeDriver VS Calabash

http://kongqingyun123.blog.163.com/blog/static/6377283520126294029822/ 自从上次对Robotium和nativedriver这两个工具做对比已经过去将近一年的时间了&#xff08;上次内容见http://kongqingyun123.blog.163.com/blog/static/637728352011614111010446/&#xff09;&#x…

POJ 1228 Grandpa's Estate --深入理解凸包

题意&#xff1a; 判断凸包是否稳定。 解法&#xff1a; 稳定凸包每条边上至少有三个点。 这题就在于求凸包的细节了&#xff0c;求凸包有两种算法&#xff1a; 1.基于水平序的Andrew算法 2.基于极角序的Graham算法 两种算法都有一个类似下面的语句&#xff1a; for(int i0;i&…

赵强老师免费公开课第一季:Hadoop的背景起源

标签&#xff1a;免费直播课 Hadoop 大数据 赵强原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://51edu.blog.51cto.com/8899635/1897555 Hadoop大数据免费公开课招募啦~~~赵强…

.NET Windows服务应用程序

此文旨在记录个人对windows服务的理解以及学习记录&#xff0c;高人可以直接绕行。 1.Windows 服务体系结构 http://technet.microsoft.com/zh-cn/library/aa998749(vexchg.65).aspx Windows 服务&#xff08;也称服务应用程序&#xff09;是无论用户是否登录都运行在 Windows …

io流技术java_技术文章-java中的IO流

1.File类Java中对文件有操作时&#xff0c;可以实例化一个File对象&#xff0c;将文件路径利用这样的形式赋给File对象。File f new File(filePath);File类的基本操作包括&#xff1a;判断是否存在&#xff1a;f.exists()获取文件名&#xff1a;f.getName()获取其绝对路径&…