svg和css3是什么,如何实现环形渐变进度条
导读:关于“svg和css3是什么,如何实现环形渐变进度条”的知识点有一些人不是很理解,对此小编给大家总结了相关内容,文中的内容简单清晰,易于学习与理解,具有一定的参考学习价值,希望能对大家有所帮助,接下来就跟随小编一起学习一下“svg和css3...
关于“svg和css3是什么,如何实现环形渐变进度条”的知识点有一些人不是很理解,对此小编给大家总结了相关内容,文中的内容简单清晰,易于学习与理解,具有一定的参考学习价值,希望能对大家有所帮助,接下来就跟随小编一起学习一下“svg和css3是什么,如何实现环形渐变进度条”吧。在负责的项目中,有一个环形渐变读取进度的效果的需求,于是在网上查阅相关资料整理一下。
代码如下:
!DOCTYPE html>
html>
head>
meta charset="UTF-8">
title>
Title/title>
script src="https://code.jquery.com/jquery-3.1.1.min.js">
/script>
/head>
body>
div>
svg width="340" height="340" xmlns="http://www.w3.org/2000/svg">
circle r="150" cy="170" cx="170" stroke-width="10" stroke="#FAFAFA" fill="none" />
circle r="150" cy="170" cx="170" stroke-width="35" stroke="url(#linearGradient)" stroke-linejoin="round" stroke-linecap="round" fill="none"/>
circle 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>
div>
span>
/span>
span>
%/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">
*{
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>
以上就是关于svg和css3是什么,如何实现环形渐变进度条的介绍,本文内容仅供参考,有需要的朋友可以借鉴了解看看,希望对大家学习或工作,想要了解更多欢迎关注网络,小编每天都会为大家更新不同的知识。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: svg和css3是什么,如何实现环形渐变进度条
本文地址: https://pptw.com/jishu/654120.html
