国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 擴展 > SVG > 正文

SVG實現多彩圓環倒計時效果的示例代碼

2024-09-06 19:57:12
字體:
來源:轉載
供稿:網友

圓環倒計時我們經常見到,實現的方法也有很多種。但是本文將介紹一種全新的實現方式,使用SVG來實現倒計時功能。

本文主要用到了SVG的stroke-dasharray和stroke-dashoffset特性。下圖是倒計時運行效果:

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();

整個案例的代碼非常少,有喜歡的朋友可以將代碼保存到html中,運行一下,體驗體驗實際效果。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 马关县| 普格县| 大田县| 古蔺县| 望都县| 大余县| 海宁市| 汾西县| 宁都县| 咸宁市| 南城县| 兖州市| 若羌县| 赤城县| 西盟| 井研县| 安丘市| 阜康市| 太谷县| 麟游县| 化德县| 通化县| 西林县| 乌鲁木齐县| 泰安市| 酒泉市| 晋州市| 枣强县| 昭苏县| 沙坪坝区| 吕梁市| 尼勒克县| 遵义县| 新乡市| 泰宁县| 色达县| 文化| 甘谷县| 酉阳| 珲春市| 昌平区|