css3进度条颜色,CSS_可以随进度显示不同颜色的css3进度条分享,一款进度条,它的外观是一条 - phpStudy...

可以随进度显示不同颜色的css3进度条分享

一款进度条,它的外观是一条直线,末端有个小球,在进度变化时可以显示数字百分比,更可以用不同颜色来表示当前进度的状态。来看看效果图。

接下来我们来分析一下这款HTML5进度条的实现源码,篇幅有限,我们只挑核心的代码来说。

HTML代码很简单,构造一个进度条容器和数字百分比容器:

复制代码代码如下:

0

首先我们来对进度条的容器进行样式渲染,利用CSS3的渐变属性来实现不同进度变换颜色的效果:

复制代码代码如下:

.loader-container {

height: 6px;

width: 600px;

position: absolute;

top: 50%;

left: 50%;

margin-top: -3px;

margin-left: -300px;

background-color: transparent;

background-image: -webkit-linear-gradient(left, #5bd8ff, #ff0000);

background-image: -moz-linear-gradient(left, #5bd8ff, #ff0000);

background-image: -o-linear-gradient(left, #5bd8ff, #ff0000);

background-image: -ms-linear-gradient(left, #5bd8ff, #ff0000);

background-image: linear-gradient(left, #5bd8ff, #ff0000);

box-shadow: inset 0 -2px 2px rgba(0, 0, 0, 0.4);

border-radius: 3px 0 0 3px;

}

.loader-container:after {

content: "";

display: block;

position: absolute;

right: 0;

top: 50%;

width: 1em;

height: 1em;

border-radius: 50%;

margin-top: -0.5em;

margin-right: -1em;

background-image: -webkit-linear-gradient(top, #000000, #212121);

background-image: -moz-linear-gradient(top, #000000, #212121);

background-image: -o-linear-gradient(top, #000000, #212121);

background-image: -ms-linear-gradient(top, #000000, #212121);

background-image: linear-gradient(top, #000000, #212121);

}

接下来是末端小圆球的样式:

复制代码代码如下:

.loader-container.done:after {

background: Red;

}

.run .runner {

content: "";

position: absolute;

right: 0;

height: 100%;

width: 0%;

background-color: transparent;

background-image: -webkit-linear-gradient(top, #000000, #212121);

background-image: -moz-linear-gradient(top, #000000, #212121);

background-image: -o-linear-gradient(top, #000000, #212121);

background-image: -ms-linear-gradient(top, #000000, #212121);

background-image: linear-gradient(top, #000000, #212121);

animation: loader 10s linear;

}

这里也是利用的CSS3的渐变属性。

然后是数字百分比的样式属性,这里随着进度变化,数字百分比的颜色也会发生变化。

复制代码代码如下:

.meter {

position: absolute;

top: 0;

right: 0;

font-size: 2em;

margin-top: .3em;

color: #ff0000;

animation: meter 10s linear;

text-shadow: 0 -1px 0 #333333;

}

.meter:after {

content: "%";

}

最后,我们再来看看JS代码,其实js要完成的工作非常简单,只需要将CSS3渲染好的进度条动起来就好,看代码:

复制代码代码如下:

var Loader = function () {

var loader = document.querySelector('.loader-container'),

meter = document.querySelector('.meter'),

k, i = 1,

counter = function () {

if (i <= 100) {

meter.innerHTML = i.toString();

i++;

} else {

window.clearInterval(k);

}

};

return {

init: function (options) {

options = options || {};

var time = options.time ? options.time : 0,

interval = time/100;

loader.classList.add('run');

k = window.setInterval(counter, interval);

setTimeout(function () {

loader.classList.add('done');

}, time);

},

}

}();

Loader.init({

// If you have changed the @time in LESS, update this number to the corresponding value. Measured in miliseconds.

time: 10000

});

源码打包下载地址:http://xiazai.phpstudy.net/201403/tools/css3jdt.rar相关阅读:

C#实现读取注册表监控当前操作系统已安装软件变化的方法

HTML5新特性之用SVG绘制微信logo

浅析angularJS中的ui-router和ng-grid模块

yii实现使用CUploadedFile上传文件的方法

win10手机预览版10080 xbox怎么样?

JQuery中属性过滤选择器用法实例分析

省市县三级联动的SQL语句

百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换

PHP数学运算函数大汇总(经典值得收藏)

详解C语言的结构体中成员变量偏移问题

浅谈使用 PHP 进行手机 APP 开发(API 接口开发)

自定义Android圆形进度条(附源码)

用html5的canvas和JavaScript创建一个绘图程序的简单实例

Java实现简单邮件发送

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 HTML 和 CSS3 实现圆形进度条的代码,根据 1-100 显示不同进度条位置: HTML 代码: ``` <div class="progress"> <div class="progress-bar"></div> <div class="progress-text">0%</div> </div> ``` CSS3 代码: ``` .progress { position: relative; display: inline-block; width: 100px; height: 100px; margin: 20px; } .progress-bar { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #eee; border-radius: 50%; z-index: 1; } .progress-bar::after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #f44336; border-radius: 50%; clip: rect(0, 50px, 100px, 0); z-index: 2; transform: rotate(0deg); transform-origin: center center; } .progress-text { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 24px; font-weight: bold; color: #333; } /* 根据进度条位置调整 clip 属性的值 */ .progress-1 .progress-bar::after { clip: rect(0, 25px, 100px, 0); transform: rotate(0deg); } .progress-2 .progress-bar::after { clip: rect(0, 50px, 100px, 0); transform: rotate(18deg); } .progress-3 .progress-bar::after { clip: rect(0, 50px, 100px, 0); transform: rotate(36deg); } ... .progress-100 .progress-bar::after { clip: rect(0, 100px, 100px, 0); transform: rotate(360deg); } ``` 使用 JavaScript 动态更新进度条位置: ``` var progress = document.querySelector('.progress'); var progressBar = progress.querySelector('.progress-bar'); var progressText = progress.querySelector('.progress-text'); function updateProgress(progressValue) { var progressDeg = progressValue / 100 * 360; progressBar.style.clip = 'rect(0, 100px, 100px, 0)'; progressBar.style.transform = 'rotate(' + progressDeg + 'deg)'; progressText.textContent = progressValue + '%'; } updateProgress(50); ``` 注意,以上代码仅为示例,实际应用中还需要根据具体需求进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值