php 页面加载进度条,HTML5/CSS3 网页加载进度条的实现,下载进度条等经典案例

本文介绍如何利用HTML和CSS构建一个具有渐变效果的进度条,提升用户体验,尤其是在下载、删除大量任务或网页加载时。通过设置元素样式和使用动画,实现了条纹效果的进度条,并提供了JavaScript方法来动态更新进度。该进度条适用于网页和手机布局,为用户提供视觉反馈,避免误认为应用卡死。
摘要由CSDN通过智能技术生成

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

效果图:

41e4029abed62930c82ba2c07ef7e581.gif

1、html结构:

0%

简单分析下:

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;

}

}

此时效果为:

1edec7ffae41de6faccf31ee9bbbd445.png

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

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

我们采用

a、从左上到右下的渐变

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

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

分析图:

bb8039b85c5ddbcda4c3b5610707a789.png

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

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);

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值