视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
CSS3和HTML5网页加载进度条的实现
2020-11-27 18:48:23 责编:小采
文档
 本篇文章主要介绍了HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例,具有一定的参考价值,有兴趣的可以了解一下。

今天给大家带来一个比较炫的进度条,进度条在一耗时操作上给用户一个比较好的体验,不会让用户觉得在盲目等待,对于没有进度条的长时间等待,用户会任务死机了,毫不犹豫的关掉应用;一般用于下载任务,删除大量任务,网页加载等;如果有使用HTML5为手机布局的,也可以用于手机中~

效果图:

1、html结构:

<p id="loadBar01" class="loadBar"> 
 <p> 
 <span class="percent"> 
 <i></i> 
 </span> 
 </p> 
 <span class="percentNum">0%</span> 
 </p>

简单分析下:

p.loadBar代表整个进度条

p.loadBar p 设置了圆角表框 ,p.loadBar p span 为进度 (动态改变宽度), p.loadBar p span i 为进度填充背景色(即width=100%)

HTML的结构,大家可以自己设计,只要合理,都没有问题~

2、CSS:

body 
 { 
 font-family: Thoma, Microsoft YaHei, 'Lato', Calibri, Arial, sans-serif; 
 } 
 
 #content 
 { 
 margin: 120px auto; 
 width: 80%; 
 } 
 
 .loadBar 
 { 
 width: 600px; 
 height: 30px; 
 border: 3px solid #212121; 
 border-radius: 20px; 
 position: relative; 
 } 
 
 .loadBar p 
 { 
 width: 100%; 
 height: 100%; 
 position: absolute; 
 top: 0; 
 left: 0; 
 } 
 
 .loadBar p span, .loadBar p i 
 { 
 box-shadow: inset 0 -2px 6px rgba(0, 0, 0, .4); 
 width: 0%; 
 display: block; 
 height: 100%; 
 position: absolute; 
 top: 0; 
 left: 0; 
 border-radius: 20px; 
 } 
 
 .loadBar p i 
 { 
 width: 100%; 
 -webkit-animation: move .8s linear infinite; 
 background: -webkit-linear-gradient(left top, #7ed047 0%, #7ed047 25%, #4ea018 25%, #4ea018 50%, #7ed047 50%, #7ed047 75%, #4ea018 75%, #4ea018 100%); 
 background-size: 40px 40px; 
 } 
 
 .loadBar .percentNum 
 { 
 position: absolute; 
 top: 100%; 
 right: 10%; 
 padding: 1px 15px; 
 border-bottom-left-radius: 16px; 
 border-bottom-right-radius: 16px; 
 border: 1px solid #222; 
 background-color: #222; 
 color: #fff; 
 
 } 
 
 @-webkit-keyframes move 
 { 
 0% 
 { 
 background-position: 0 0; 
 } 
 100% 
 { 
 background-position: 40px 0; 
 } 
 }

此时效果为:

整体布局就是利用position relative和absolute~

比较难的地方就是,渐变条的实现:

我们采用

a、从左上到右下的渐变

b、颜色分别为:0-25% 为#7ed047 , 25%-50% 为#4ea018 , 50%-75%为#7ed047 , 75%-100%为#4ea018

c、背景的大小为40px 40px 这个设置超过高度就行, 越大,条文宽度越宽

分析图:

设置的原理就是上图了,同时可以背景宽度设置越大,条文宽度越大;

3、设置Js,创建LoadBar对象

function LoadingBar(id) 
 { 
 this.loadbar = $("#" + id); 
 this.percentEle = $(".percent", this.loadbar); 
 this.percentNumEle = $(".percentNum", this.loadbar); 
 this.max = 100; 
 this.currentProgress = 0; 
 } 
 LoadingBar.prototype = { 
 constructor: LoadingBar, 
 setMax: function (maxVal) 
 { 
 this.max = maxVal; 
 }, 
 setProgress: function (val) 
 { 
 if (val >= this.max) 
 { 
 val = this.max; 
 } 
 this.currentProgress = parseInt((val / this.max) * 100) + "%"; 
 this.percentEle.width(this.currentProgress); 
 this.percentNumEle.text(this.currentProgress); 
 
 
 } 
 };

我们创建了一个LoadBar对象,同时公开了两个方法,一个设置最大进度,一个设置当前进度;比如下载文件最大进度为文件大小,当前进度为已下载文件大小。

4、测试

最后我们测试下我们的代码:

$(function () 
 { 
 
 var loadbar = new LoadingBar("loadBar01"); 
 var max = 1000; 
 loadbar.setMax(max); 
 var i = 0; 
 var time = setInterval(function () 
 { 
 loadbar.setProgress(i); 
 if (i == max) 
 { 
 clearInterval(time); 
 return; 
 } 
 i += 10; 
 }, 40); 
 });

下载本文
显示全文
专题