逻辑

1、首先有一个圆:蓝色的纯净的圆,效果:

2、再来两个半圆,左边一个,右边一个将此蓝色的圆盖住,效果:

此时将右半圆旋转60°,就会漏出底圆,效果:

 

然后我们再用一个比底圆小的圆去覆盖这个大圆就可以出进度条效果了

代码:

<style>
     /*支持IE9及以上*/
    .circle-bar {margin: 20px; font-size:200px; width: 1em; height: 1em; position: relative;  background-color: #29a6e6; }
    .circle-bar-left,.circle-bar-right { width: 1em; height: 1em;  }
    /*
        这里采用clip剪切了圆,实现左右两个半圆,右半圆在后面
     */
    .circle-bar-right { clip:rect(0,auto,auto,.5em);background-color: #e2e2e2; }
    .circle-bar-left { clip:rect(0,.5em,auto,0); background-color: red;}

.mask { width: 0.8em; height: 0.8em;  background-color: #fff;text-align: center;line-height: 0.2em; color:rgba(0,0,0,0.5); }
    .mask :first-child { font-size: 0.3em; height: 0.8em; line-height: 0.8em; display: block;  }
    /*所有的后代都水平垂直居中,这样就是同心圆了*/
    .circle-bar * {  position: absolute; top:0; right:0; bottom:0; left:0; margin:auto; }
    /*自身以及子元素都是圆*/
    .circle-bar, .circle-bar > * { border-radius: 50%; }
</style>

<div class="circle-bar">
    <div class="circle-bar-left"></div>
    <div class="circle-bar-right"></div>
     <!--遮罩层,显示百分比-->
    <div class="mask">
        <span class="percent"></span>
    </div>
</div>

<script>
    $(function () {
        var percent = 0;
        var interval = setInterval(function () {
            //            var percent = parseInt($('.mask :first-child').text());
            percent+=5;
            var baseColor = $('.circle-bar').css('background-color');
            if (percent <= 50) {
                $('.circle-bar-right').css('transform', 'rotate(' + (percent * 3.6) + 'deg)');
            } else {
                $('.circle-bar-right').css({
                    'transform': 'rotate(0deg)',
                    'background-color': baseColor
                });
                $('.circle-bar-left').css('transform', 'rotate(' + ((percent - 50) * 3.6) + 'deg)');
            }
            $('.mask :first-child').html(percent + "%");
            if (percent == 100) {
                $('.circle-bar-right').css({
                    'transform': 'rotate(0deg)',
                    'background-color': '#e2e2e2'
                });
                $('.circle-bar-left').css({
                    'transform': 'rotate(0deg)',
                    'background-color': '#e2e2e2'
                });
                percent = 0;
                clearInterval(interval);
            }
        }, 1000);
    })
</script>

作者:何大必
链接:https://www.jianshu.com/p/e7bd35cd88cf
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

用HTML、CSS、JS制作圆形进度条(无动画效果)的更多相关文章

  1. 移动端纯CSS3制作圆形进度条所遇到的问题

    近日在开发的页面中,需要制作一个动态的圆形进度条,首先想到的是利用两个矩形,宽等于直径的一半,高等于直径,两个矩形利用浮动贴在一起,设置overflow:hidden属性,作为盒子,内部有一个与其宽高 ...

  2. 微信小程序纯css制作圆形进度条所遇到的问题

    wrapBox:最外层盒子,背景色为进度条的颜色 leftBox/rightBox:半宽等长 左/右浮动的盒子,背景色为灰色 roundMask:居中的盒子 用来遮盖leftBox和rightBox ...

  3. Core Animation一些Demo总结 (动态切换图片、大转盘、图片折叠、进度条等动画效果)

    前一篇总结了Core Animation的一些基础知识,这一篇主要是Core Animation 的一些应用,涉及到CAShapeLayer.CAReplicatorLayer等图层的知识. 先看效果 ...

  4. bootstrap.css 进度条没有动画效果

    操作系统设置会影响浏览器的行为 Win+R 输入 sysdm.cpl ,3 打开 性能 的 设置 确保 窗口内动画控件和元素 被勾选

  5. 原生html,css+js写下载按钮有提示动画效果的落地页

    <!DOCTYPE html> <html lang="en"> <head>   <meta charset="UTF-8&q ...

  6. jquery 圆形进度条

    最近手里面的项目需要完成这个对设备性能的检测显示功能,需要使用到圆形进度条这样的效果,网上找了一圈,有很多相当的插件,找到:circliful 插件,看了他的使用说明比较的方便,于是就下载了它并将自己 ...

  7. Android 自定义 View 圆形进度条总结

    Android 自定义圆形进度条总结 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 微信公众号:牙锅子 源码:CircleProgress 文中如有纰漏,欢迎大家留言指出. 最近 ...

  8. CSS制作环形进度条

    参考来源 <Radial progress indicator using CSS>,该文核心是用纯CSS来做一个环形的进度条.纯css的意思就是连百分比这种数字,都是css生成的.文章作 ...

  9. 简单实用的纯CSS百分比圆形进度条插件

    percircle是一款简单实用的纯CSS百分比圆形进度条插件.你不需要做任何设置,只需要按该圆形进度条插件提供的标准HTML结构来编写代码,就可以生成一个漂亮的百分比圆形进度条. 首先要做的就是引入 ...

随机推荐

  1. UDF——定制窗口

    获取实例句柄的代码来自:https://blog.csdn.net/xie1xiao1jun/article/details/22180815 在Fluent当中我们可以使用scheme来为Fluen ...

  2. Jedis与Jedis连接池

    1.Jedis简介 实际开发中,我们需要用Redis的连接工具连接Redis然后操作Redis, 对于主流语言,Redis都提供了对应的客户端: https://redis.io/clients 2. ...

  3. [Beta]Scrum Meeting#4

    github 本次会议项目由PM召开,时间为5月9日晚上10点30分 时长15分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客整理文档 撰写博客整理文档 swoip 改进界面 改进界面 bh ...

  4. 使用uiautomator2自动化测试app(二)------操作篇

    提示: 1. 推荐使用python3以上的版本来进行开发 2. 手机使用安卓手机,版本最好不要太老,一根数据线 3. 安装虚拟机(博主使用雷电) 操作: 这里只简单的介绍一些uiautomator2的 ...

  5. 【深入学习linux】Linux系统安装

    1. 配置内存大小,和设置镜像文件,开启虚拟机,点击虚拟机,立即按F2,会出现下图 2. 选择 Boot 菜单,默认是以硬盘进行启动,但是硬盘目前为空,则不能启动,需要改成以光盘形式启动即 CD-RO ...

  6. Curator框架实现ZooKeeper分布式锁

    排他锁(X) 这里主要讲讲分布式锁中的排他锁.排他锁(Exclusive Locks,简称X锁),又称为写锁或独占锁,是一种基本的锁类型.如果事务T1对数据对象O1加上了排他锁,那么在整个加锁期间,只 ...

  7. tp使用ajaxReturn返回二维数组格式的字符串,前台如何获取非乱码

    参考: https://www.cnblogs.com/jiqing9006/p/5000849.html https://blog.csdn.net/zengxiangxuan123456/arti ...

  8. 阿里巴巴Java开发手册(华山版)

    插件下载地址: https://github.com/alibaba/p3c 2018年9月22日,在2018杭州云栖大会上,召开<码出高效:Java 开发手册>新书发布会,并宣布将图书所 ...

  9. 解决SQL Server 阻止了对组件Ad Hoc Distributed Queries访问的方法

    来源:http://www.htmer.com/article/922.htm 今天单位一ASP.NET网站,里面有个功能是导出数据,发现一导出就报错,报错内容是:SQL  Server 阻止了对组件 ...

  10. 【Gitlab】宝塔gitlab 修改管理员账号密码

    步骤: a. 切换目录:cd /opt/gitlab/bin b.执行 :sudo gitlab-rails console production 命令 开始初始化密码 c.在 irb(main):0 ...