真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

css實(shí)現(xiàn)圓形進(jìn)度條的方法-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)css實(shí)現(xiàn)圓形進(jìn)度條的方法,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)IDC提供業(yè)務(wù):成都二樞服務(wù)器租用托管,成都服務(wù)器租用,成都二樞服務(wù)器租用托管,重慶服務(wù)器租用等四川省內(nèi)主機(jī)托管與主機(jī)租用業(yè)務(wù);數(shù)據(jù)中心含:雙線(xiàn)機(jī)房,BGP機(jī)房,電信機(jī)房,移動(dòng)機(jī)房,聯(lián)通機(jī)房。

css實(shí)現(xiàn)圓形進(jìn)度條的方法:首先畫(huà)一個(gè)方形;然后在方形中畫(huà)兩個(gè)等大均分方形的矩形;最后使用css3的“transform:rotate”屬性將疊加環(huán)形根據(jù)實(shí)際百分比換算成實(shí)際的旋轉(zhuǎn)角度即可。

進(jìn)度條效果如下:
css實(shí)現(xiàn)圓形進(jìn)度條的方法

整圓的效果處理會(huì)簡(jiǎn)單些,不完整環(huán)實(shí)現(xiàn)起來(lái)細(xì)節(jié)多點(diǎn)。下邊是實(shí)現(xiàn)邏輯和過(guò)程。

進(jìn)度條組成:

環(huán)形:兩種顏色進(jìn)度條,當(dāng)余量少于50%時(shí)進(jìn)度條顏色由綠色變?yōu)辄S色。進(jìn)度條結(jié)構(gòu)由兩個(gè)疊加環(huán)形組成;上疊加環(huán)形展示剩余量,深色;下疊加環(huán)形展示100%總量,淺色。

樣式實(shí)現(xiàn):

1:畫(huà)一個(gè)方形,如圖中陰影部分所示:
css實(shí)現(xiàn)圓形進(jìn)度條的方法
2:方形中畫(huà)兩個(gè)等大均分方形的矩形,(注意每個(gè)矩形一定要設(shè)置:overflow:hidden)如圖中陰影部分所示:
css實(shí)現(xiàn)圓形進(jìn)度條的方法css實(shí)現(xiàn)圓形進(jìn)度條的方法

3:進(jìn)度條由兩個(gè)疊加環(huán)形組成,所以第一步的方形中需要畫(huà)四個(gè)等大的矩形用來(lái)展示不同部分的環(huán)形。

4:每個(gè)矩形中畫(huà)一個(gè)和父級(jí)方形等大的方形,用來(lái)展示環(huán)形,左半矩形中的環(huán)形只設(shè)置上邊框和左邊框;右半矩形中的環(huán)形只設(shè)置上邊框和右邊框,如圖中陰影所示:

css實(shí)現(xiàn)圓形進(jìn)度條的方法

5:實(shí)現(xiàn)進(jìn)度條的動(dòng)態(tài)百分比進(jìn)度,使用css3的transform:rotate將上疊加環(huán)形根據(jù)實(shí)際百分比換算成實(shí)際的旋轉(zhuǎn)角度來(lái)實(shí)現(xiàn)。
當(dāng)剩余量大于50%時(shí)左側(cè)上疊加環(huán)形旋轉(zhuǎn)角度不用變,只有計(jì)算右測(cè)上疊加環(huán)形旋轉(zhuǎn)角度即可。
當(dāng)剩余量小于百分之50%時(shí),左側(cè)上疊加環(huán)形旋轉(zhuǎn)時(shí),就會(huì)將左半環(huán)形展示為完整的半環(huán),此時(shí)就需要一個(gè)用來(lái)遮擋左側(cè)超出進(jìn)度范圍環(huán)形部分的左側(cè)環(huán);如下圖所示:
css實(shí)現(xiàn)圓形進(jìn)度條的方法

html代碼如下:

//percent小于50時(shí)需要使用遮罩進(jìn)行遮擋超出環(huán)形范圍部分

剩余

'+circleData.percent+'%

css代碼:

.progress_wrap{
                   position: relative;
                   margin:0 0 0 .14rem;
                   width:.92rem;height:.92rem;
                   //little和more用來(lái)展示黃色和綠色的效果
                   &.little{
                       .under{
                           
                           .rightcircle,.leftcircle{
                               border-top:$progress_border_under_little;
                           }
                           .rightcircle{
                               border-right:$progress_border_under_little;
                           }
                           .leftcircle{
                               border-left:$progress_border_under_little;
                           }
                       }
                       .up{
                           .rightcircle,.leftcircle{
                               border-top:$progress_border_up_little;
                           }
                           .rightcircle{
                               border-right:$progress_border_up_little;
                           }
                           .leftcircle{
                               border-left:$progress_border_up_little;
                           }
                       }
                       //用遮擋實(shí)現(xiàn)左側(cè)剩余百分比,遮住超出環(huán)形范圍部分;核心是使用同心圓進(jìn)行邊框進(jìn)行遮擋
                       .up_left_cover{
                           width:.47rem;height:.92rem;
                           .leftcircle{
                               top:-.02rem;
                               width:.74rem;height:.74rem;
                               border:.11rem solid transparent;
                               border-top:$progress_border_up_left_cover_little;
                               border-left:$progress_border_up_left_cover_little;
                               //實(shí)際值為195deg,被遮擋環(huán)顏色值深有光暈,需要將角度進(jìn)行微調(diào)(-191deg)進(jìn)行完全遮擋
                               -webkit-transform:rotate(-191deg);
                           }
                       }
                       
                   }
                   &.more{
                       .under{
                           .rightcircle,.leftcircle{
                               border-top:$progress_border_under;
                           }
                           .rightcircle{
                               border-right:$progress_border_under;
                           }
                           .leftcircle{
                               border-left:$progress_border_under;
                           }
                       }
                       .up{
                           .rightcircle,.leftcircle{
                               border-top:$progress_border_up;
                           }
                           .rightcircle{
                               border-right:$progress_border_up;
                           }
                           .leftcircle{
                               border-left:$progress_border_up;
                           }
                       }
                   }
                   .right,.left{
                       position: absolute;top:0;overflow:hidden;
                       width:.46rem;height:.92rem;
                       .circleProgress{
                           position: absolute; top:0;
                           width: .78rem; height: .78rem;
                           border:.07rem solid transparent; border-radius: 50%;
                           
                       }
                       .rightcircle{
                           right:0;
                           -webkit-transform: rotate(15deg);
                       }
                       .leftcircle{
                           left:0;
                           -webkit-transform: rotate(-15deg);
                       }
                       
                   }
                   .right{
                       right:0;
                   }
                   .left{
                       left:0;
                   }
                   .num{
                       position: absolute;left:50%;top:50%;
                       width:.5rem;
                       transform:translate(-50%,-50%);
                       font-size:.12rem;color:$public_auxiliary_col;text-align:center;line-height:.26rem;
                   }
               }

js代碼:

function giftCircleProgressFn(per){
            var circleData = {};
            var percent = parseInt(per);
            
            //領(lǐng)取進(jìn)度環(huán)形顏色className
            var halfClassName = percent<50?"little":"more";

            //左半環(huán)遮罩層顯示樣式狀態(tài)
            var leftCircleDisplay = percent<50?"block":"none";

            var leftRotate = 0;
            var rightRotate = 0;
            //以50%為界限;<50%:右半圓占比為0,左半圓需要使用遮罩進(jìn)行遮擋,展示剩余部分
            //           >50%:左半圓占比100%,右半圓直接使用百分比計(jì)算所占部分即可
            //注意:在半圓中計(jì)算百分比時(shí),要將百分比乘以2。
            if(percent<50){
                leftRotate = -15-180+150*(percent*2)/100;   
                rightRotate = -135;
            }else{
                leftRotate = -15;
                rightRotate = -135+(150*((percent-50)*2)/100);   //比例在半環(huán)計(jì)算需要*2倍
            }
            circleData = {
                leftRotate:leftRotate,  //左半環(huán)進(jìn)度
                rightRotate:rightRotate, //右半環(huán)進(jìn)度
                halfClassName:halfClassName, //50% 進(jìn)度環(huán) 變色
                leftCircleDisplay:leftCircleDisplay, //左半環(huán)遮罩
                percent:per  //進(jìn)度百分比
            }
            return circleData
        }

環(huán)形旋轉(zhuǎn)角度換算需要根據(jù)不同需求進(jìn)行微調(diào)即可。


關(guān)于css實(shí)現(xiàn)圓形進(jìn)度條的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


名稱(chēng)欄目:css實(shí)現(xiàn)圓形進(jìn)度條的方法-創(chuàng)新互聯(lián)
文章地址:http://weahome.cn/article/dpiosh.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部