利用js编写网页进度条效果


Posted in Javascript onOctober 08, 2017

一、基本思路

为了让我们编写的网页进度条满足现有需求,又足够轻便,所以使用原生js写一个构造函数,为了见名知义,可以把该函数命名为”Loading”。该函数接收2个参数,分别为arr、callback。其中arr定义图片数组,callback定义执行完成后回调函数。该构造函数内部,遍历图片数组加载图片,每加载完一张图片,修改进度条进度,直至全部加载完成,进度条进度为100%。

二、实现步骤

(1)先搭建好进度条的样子,把html和css写好。

利用js编写网页进度条效果

利用js编写网页进度条效果

写完后预览一下进度条的效果

利用js编写网页进度条效果

(2)编写Loading构造函数。在该构造函数中,把进度条的css和html在执行进度条init方法时动态添加和渲染。至此,进度条模块已经编写好,使用时只需要引入该构造函数,并实例化一个对象。

利用js编写网页进度条效果

(3)实例化一个进度条对象

利用js编写网页进度条效果

三、改进

该组件的可扩展性稍弱,主要表现为进度条样式上,可以根据不同进度条实例来定义进度条样式。所以可以在构造函数中增加一个this.setCss方法,实现不同进度条实例的个性化。修改如下:

利用js编写网页进度条效果

如果进度条颜色为红色,不是默认的#01ffff,则在初始化前调用setCss方法。

利用js编写网页进度条效果

页面效果如下

利用js编写网页进度条效果

四、总结

该进度条插件已经开发完成,仍有很多可优化的点,比如加载进度条的动画可以更加优雅,配置样式时可以更简洁,代码的可读性等。优化无止境,同学仍需努力。

Javascript 相关文章推荐
默认让页面的第一个控件选中的javascript代码
Dec 26 Javascript
纯js简单日历实现代码
Oct 05 Javascript
JS实现的简洁二级导航菜单雏形效果
Oct 13 Javascript
通用javascript代码判断版本号是否在版本范围之间
Nov 29 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
Dec 01 Javascript
浅谈js数组和splice的用法
Dec 04 Javascript
jquery获取下拉框中的循环值
Feb 08 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
Jun 19 Javascript
fullPage.js和CSS3实现全屏滚动效果
May 05 Javascript
深入理解Vue 的条件渲染和列表渲染
Sep 01 Javascript
tween.js缓动补间动画算法示例
Feb 13 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
Jul 25 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
Oct 08 #Javascript
JS动态修改网页body的背景色实例代码
Oct 07 #Javascript
JS实现简单表格排序操作示例
Oct 07 #Javascript
javascript数组定义的几种方法
Oct 06 #Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
Oct 06 #Javascript
node.js中http模块和url模块的简单介绍
Oct 06 #Javascript
你应该知道的几类npm依赖包管理详解
Oct 06 #Javascript
You might like
PHP的FTP学习(四)
2006/10/09 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
iOS10推送通知开发教程
2016/09/19 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
JQUERY对单选框(radio)操作的小例子
2013/04/25 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
2015/01/09 Javascript
javascript封装 Cookie 应用接口
2015/08/07 Javascript
javascript中的3种继承实现方法
2016/01/27 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
从零学Python之入门(四)运算
2014/05/27 Python
python实现批量获取指定文件夹下的所有文件的厂商信息
2014/09/28 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
python实现任意位置文件分割的实例
2018/12/14 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
2021/01/10 Python
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
int和Integer有什么区别
2013/05/25 面试题
培训讲师邀请函
2014/01/10 职场文书
护士求职自荐信
2015/03/25 职场文书
埃及王子观后感
2015/06/16 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书