svg環形進度圖react-circle添加動畫效果

num用於更新次數,做比例計算

count爲進度變化值 

主要實現步驟:

setCount(parseFloat(to*num*0.1).toFixed(2))

import React, { useEffect,useState } from 'react';
import Circle from "react-circle";

const CountTo=(props)=>{
    const {from,to,speed}=props;
    const [num,setNumber]=useState(0)
    const [count,setCount]=useState(from)
    useEffect(()=>{

        const interval=setInterval(()=>{
            if (num!=11){
                setNumber(num+1)
                setCount(parseFloat(to*num*0.1).toFixed(2))
            }
        },speed)

        return ()=>clearInterval(interval)
    });

    return <Circle size='54' lineWidth="40" textColor="#ffffff" bgColor="rgb(82, 147, 204)" progressColor="#ffffffad"
                   progress={ count}/>
}
CountTo.defaultProps={
    from:0, //min 0
    to:80, //max 100
    speed:0
}
export default CountTo;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章