SVG怎样开始实现多彩圆环倒计时

这次给大家带来SVG怎样开始实现多彩圆环倒计时,怎样用SVG实现多彩圆环倒计时?SVG实现多彩圆环倒计时的注意事项有哪些,下面就是实战案例,一起来看一下。

圆环倒计时我们经常见到,实现的方法也有很多种。但是本文将介绍一种全新的实现方式,使用SVG来实现倒计时功能

SVG倒计时案例

下面说说相关的实现代码。css实现代码如下:

svg {
    transform: rotate(-0.05deg);
}
circle {
    transition: stroke-dasharray .2s;
}
.time-count-x {
    line-height: 1.5;
    position: relative;
}
.time-second {
    position: absolute;
    top: 50%; left: 0; right: 0;
    margin-top: -.75em;
    text-align: center;
    font-size: 100px;
}

相关HTML代码如下:

<div id=timeCountX class=time-count-x>
    <svg width=440 height=440 viewBox=0 0 440 440 class=center>
        <defs>
            <linearGradient x1=1 y1=0 x2=0 y2=0 id=gradient1>
                <stop offset=0% stop-color=#e52c5c></stop>
                <stop offset=100% stop-color=#ab5aea></stop>
            </linearGradient>
           <linearGradient x1=1 y1=0 x2=0 y2=0 id=gradient2>
                <stop offset=0% stop-color=#4352f3></stop>
                <stop offset=100% stop-color=#ab5aea></stop>
            </linearGradient>
        </defs>
        <g transform=matrix(0,-1,1,0,0,440)>
            <circle cx=220 cy=220 r=170 stroke-width=50 stroke=#f0f1f5 fill=none stroke-dasharray=1069 1069></circle>
            <circle cx=220 cy=220 r=170 stroke-width=50 stroke=url('#gradient1') fill=none stroke-dasharray=1069 1069></circle>
            <circle cx=220 cy=220 r=170 stroke-width=50 stroke=url('#gradient2') fill=none stroke-dasharray=534.5 1069></circle>
        </g>
    </svg>
    <span id=timeSecond class=time-second></span>
</div>

最后是相关JavaScript代码

var eleCircles=document.querySelectorAll(#timeCountX circle);
var eleTimeSec=document.getElementById(timeSecond);
var perimeter=Math.PI*2*170;
var circleInit=function(){
    if(eleCircles[1]){
        eleCircles[1].setAttribute(stroke-dasharray,1069 1069)
    }
    if(eleCircles[2]){
        eleCircles[2].setAttribute(stroke-dasharray,perimeter/2+ 1069)
    }
    eleTimeSec.innerHTML=
};
var timerTimeCount=null;
var fnTimeCount=function(b){
    if(timerTimeCount){
        return
    }
    var b=b||10;
    var a=function(){
        var c=b/10;
        if(eleCircles[1]){
            eleCircles[1].setAttribute(stroke-dasharray,perimeter*c+ 1069)
        }
        if(eleCircles[2]&&b<=5){
            eleCircles[2].setAttribute(stroke-dasharray,perimeter*c+ 1069)
        }
        if(eleTimeSec){
            eleTimeSec.innerHTML=b
        }
        b--;
        if(b<0){
            clearInterval(timerTimeCount);
            timerTimeCount=null;
            alert(时间到!);
            circleInit()
        }
    };
    a();
    timerTimeCount=setInterval(a,1000)
};
fnTimeCount();

相信看了这些案例你已经掌握了方法,更多精彩请关注编程之家网其它相关文章

相关阅读:

H5的所有元素及基本语法归纳

html5怎样操作indexedDB

关于老版本的浏览器不兼容H5和C3的处理方法

相关文章

HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码