css3的实现圆环统计、百分比显示组件。
先来看一个基本的例子:
- function rotate() {
- //随机获取数值
- var now = Math.floor(Math.random() * 100 + 0);
- //乘以比例
- var rotatenum = ‘rotate(‘ + now * 1.8 + ‘deg)’;
- //这里是为了rotate出现虚边做的兼容处理
- var s = 4;
- if(now==0 && now<96){s = 0;};
- if(now>=96){s = 1;};
- var rotatenum2 = ‘rotate(‘ + (now * 1.8+s) + ‘deg)’;
- //获取对应元素
- var progress = document.querySelector(‘#progress’);
- var progress_circle = document.querySelector(‘#progress-circle’);
- var progress_style = document.querySelector(‘#progress-style’);
- //修改显示内容
- progress.innerHTML = now + ‘%’;
- //添加动画
- progress_style.innerHTML = ‘.p-f,.p-f:before{transform: ‘ + rotatenum + ‘}.p-h:before{transform: ‘ + rotatenum2 + ‘}’;
- progress_circle.onclick = function(){
- rotate();
- };
- };
- document.body.onload = function(){
- rotate();
- };
0%
根据上面的例子,然后封装一个小组件,来利于调用和重复使用。
- //默认无参数调用,数值需写在data-num属性上
- rotate(‘.circle’).init();
- //带参调用
- rotate(‘.circle’).init({
- number : 20, //数值
- width:100, //宽度,宽度可写百分比,比如‘20%’
- bgColor:’yellow’, //背景颜色
- rotateColor:’red’, //圆环的颜色
- space : 5, //圆环的粗细
- speed : 1000, //速度
- hide : false //是否隐藏中间的数字
- });
- //html结构如下,百分比数值可直接写在data-num属性上
- <div class=“circle” data-num=’90’></div>
通过其他的配置参数来定制: