在负责的项目中,有一个环形渐变读取进度的效果的需求,于是在网上查阅相关资料整理一下。
代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
</head>
<body><div class="donut"><svg width="340" height="340" xmlns="http://www.w3.org/2000/svg" class="donut_svg"><circle r="150" cy="170" cx="170" stroke-width="10" stroke="#FAFAFA" fill="none" /><circle class="circle_bar" r="150" cy="170" cx="170" stroke-width="35" stroke="url(#linearGradient)" stroke-linejoin="round" stroke-linecap="round" fill="none"/><circle class="dot" fill="#FFFFFF" fill-rule="nonzero" cx="320" cy="170" r="12"></circle><defs><linearGradient x1="0%" y1="80.9878035%" x2="96.9769965%" y2="41.7547666%" id="linearGradient"><stop stop-color="#18A6FF" offset="0%"></stop><stop stop-color="#32B7FF" offset="52.7095376%"></stop><stop stop-color="#0094F1" offset="100%"></stop></linearGradient></defs></svg><div class="donut_copy"><div class="donut_title"><span class="js-donut-figure"></span><span class="donut_spic">%</span></div></div></div><script type="text/javascript">window.onload=function () {'use strict';var ProgressCircle = (function () {function ProgressCircle(percent,radius,elementClass){this._percent = percent;  //百分比this._radius = radius;    //圆的半径this._elementClass = elementClass;  }ProgressCircle.prototype.calcDashOffset = function () {var circumference;circumference = Math.PI * (2 * this._radius);   //计算圆圈的周长return Math.round(circumference - this._percent / 100 * circumference);  //计算圆圈要渲染的 长度!}//渲染进度条ProgressCircle.prototype.createCSS = function() {return $("." + this._elementClass + " .circle_bar").css('stroke-dashoffset', this.calcDashOffset());};//读取效果ProgressCircle.prototype.updateText = function () {$("." + this._elementClass + " .js-donut-figure")[0].innerText = this._percent;}ProgressCircle.prototype.init = function() {var _this = this;setTimeout(function(){_this.updateText();return _this.createCSS();},1000);};return ProgressCircle;})();let progress = new ProgressCircle(50, 150, 'donut');progress.init();}</script><style type="text/css" lang="scss">*{padding:0;margin:0  }.donut{position: relative;}.circle_warp{position: relative;top: 0;left: 0}.circle_bar {stroke-dasharray: 942.4777960769379;  //计算整个圆周的周长公式为Circumstance=2*PI*Radius  2*3.14*半径(此时是半径是150)stroke-dashoffset: 942.4777960769379;transition: stroke-dashoffset 1200ms cubic-bezier(.99,.01,.62,.94);}.donut_svg{transform: rotate(-90deg);}.donut_copy{text-align: center;width: 340px;height: 340px;top: 40%;left: 0;position: absolute;}.donut_title{opacity: 0;font-size: 42px;color: #171717;margin-bottom: 2px;animation: donutTitleFadeLeft 800ms 200ms cubic-bezier(.99,.01,.22,.94) forwards;transform: translateX(0);font-weight: bold;}.donut_spic{content: "%";animation: donutTitleFadeRight 800ms 200ms cubic-bezier(.99,.01,.22,.94) forwards;opacity: 0;transform: translateY(-20px);}.donut__text p{font-size: 16px;color: #AAAAAA;}@keyframes donutTitleFadeLeft {from {opacity: 0;transform: translateX(0);}to {opacity: 1;transform: translateX(10px);}}@keyframes donutTitleFadeRight {from {opacity: 0;transform: translateX(-30px);}to {opacity: 1;transform: translateX(0);}}
</style>
</html>

原文地址:根据原文思路修改的代码来实现的效果,有兴趣的可以看下
http://www.techbrood.com/zh/n...

svg和css3创建环形渐变进度条相关推荐

  1. iOS快速实现环形渐变进度条

    前言 进度条相信我们大家都不陌生,往往我们很多时候需要使用到圆形进度条.这篇文章给大家分享了利用ios如何快速实现环形进度条,下面来一起看看. 一:先制作一个不带颜色渐变的进度条 自定义一个cycle ...

  2. css3做渐变进度条

    布局: <body><section class="container"><div class="loading-bar"> ...

  3. 大屏可视化数据面板分格渐变进度条、数字翻牌器及其刷新动效实现

    数据可视化大屏是当前可视化领域的一项热门应用,通常可以分为信息展示类.数据分析类及监控预警类.这类应用的视觉设计通常效果炫酷,动效丰富,有时候一些页面布局和动画实现会对前端人员有一定的挑战性,在这里分 ...

  4. echarts渐变进度条

    echarts渐变进度条 展示情况如下图 相关代码 var data = ['数据一','数据二',"数据三","数据四","数据五",&q ...

  5. 创建自绘进度条,并在进度条上显示当前进度的百分比

    平台:VS2005: 资料参考:来源于网络: 内容介绍:创建自绘进度条,并在进度条上显示当前进度的百分比. 第一步:创建基于对话框的工程,在对话框中放置一个进度条控件, 把进度条控件的属性Smooth ...

  6. Android开发之绘制自定义进度条 | 渐变进度条 | 斜角进度条的方法

    老套路先上图 先看上面的斜角进度条的实现方法: package cn.yhsh.appwidget;import android.content.Context; import android.gra ...

  7. 在html中怎么用圆形渐变,css怎么实现圆形渐变进度条效果

    css怎么实现圆形渐变进度条效果 发布时间:2021-03-17 10:29:57 来源:亿速云 阅读:129 作者:小新 这篇文章给大家分享的是有关css怎么实现圆形渐变进度条效果的内容.小编觉得挺 ...

  8. css拖动音乐进度条,利用CSS3实现3D滑块进度条拖动动画特效

    特效描述:利用CSS3实现 3D滑块 进度条拖动 动画特效.利用CSS3实现3D滑块进度条拖动动画特效 代码结构 1. HTML代码 Scalable 3D Range Sliders Simple ...

  9. Android环形颜色渐变进度条

    我的视频课程:<FFmpeg打造Android万能音频播放器> 距离上次写博客又过了许久的了,懒起来还真是莫法,废话就不说多了,哈哈.今天要讲的就是一种常见的"环形颜色渐变的圆环 ...

  10. matlab画图环形颜色渐变,Core Animation实战之环形颜色渐变进度条

    小弟才疏学浅,第一次写简书文章,内容难免有错误或者不妥,欢迎大家来指点江山... 先来看一下最终的效果: 特点:圆环是顺时针旋转,旋转的过程中,始终保持圆环的开始端颜色最浅(白色),圆环的结尾是最深( ...

最新文章

  1. 强化学习(十九) AlphaGo Zero强化学习原理
  2. php实时上传多张图片,php实现多图片上传程序代码
  3. 改变uTools的插件安装/数据目录
  4. Android 中基本图像绘制
  5. 【clickhouse】clickhouse数据文件目录移动到新目录并建立软连接
  6. 把可视化放到年终报告里,到底有多赞?
  7. 深度学习图像算法在内容安全领域的应用实践和优化
  8. C语言中怎么将变量名转换为字符串 -转
  9. 转AndroidThings技术资料
  10. 39. 组合总和 ,40. 组合总和 II,216. 组合总和 III
  11. K3CLOUD 常用数据表
  12. Windows 10 操作系统,更新之后无法打开Windows Mobile 设备中心,要么双击无反应。要么正在启动,过会就关闭了。
  13. 「手绘控笔技巧」最有效的控笔练习,让你少走很多弯路
  14. 模拟频率f、模拟角频率Ω 、数字频率ω之间的关系
  15. 汇编语言与接口技术——期末设计
  16. 短信验证码校验的实现
  17. 开源第三方登录组件OAuthLogin2.0 支持QQ,阿里巴巴,淘宝,京东,蘑菇街,有赞等平台...
  18. 宽带IPTV单线复用
  19. 01-初识Node.js
  20. 中国目前还未掌握的核心技术有哪些?(无图)

热门文章

  1. 央行二代征信系统即将上线 有哪些变化?
  2. 个人企业征信体系介绍
  3. WIN7下安装WIN2003系统
  4. 弹窗拦截小帮手------火绒
  5. Kafka的运维利器-AdminClient
  6. ibmx3100M5服务器装win7系统,详细教程:如何安装win7系统?
  7. MySQL无法启动,服务没有报告任何错误
  8. 机器学习必备知识点 之 样本方差与实际方差
  9. 中科院计算机专业,中科院计算所博士平均年薪都超过50万了,计算机专业真是可以无脑选的那种...
  10. 【Ubuntu+Caffe+CPU】Cannot use GPU in CPU-only Caffe: check mode