|
導(dǎo)讀網(wǎng)頁的本質(zhì)就是超級文本標記語言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強大的網(wǎng)頁。因而,超級文本標記語言是萬維網(wǎng)(Web)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立... 網(wǎng)頁的本質(zhì)就是超級文本標記語言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強大的網(wǎng)頁。因而,超級文本標記語言是萬維網(wǎng)(Web)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立在超文本基礎(chǔ)之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。 上一篇文章我們介紹了如何使用css3實現(xiàn)條形進度條效果(附完整代碼),了解到進度條的實用性,那么今天來向大家介紹一下另外一種形式的進度條:環(huán)形進度條。這種進度條適合應(yīng)用于頁面加載的時候和環(huán)形計時器的頁面。本篇文章給大家?guī)淼膬?nèi)容是關(guān)于如何使用css3實現(xiàn)環(huán)形進度條效果,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。 如何使用css3實現(xiàn)條環(huán)進度條效果原理
3.這里我們詳細梳理一下rotage(deg)的用法 a.旋轉(zhuǎn):1.rotateX(deg) //繞x軸旋轉(zhuǎn) 2.rotateY(deg) //繞Y軸旋轉(zhuǎn) 3. rotateZ(deg) //繞Z軸旋轉(zhuǎn) b.平移:translate(a,b) //在x,y方向平移a,b像素距離。利用translate(-50%,50%)可以實現(xiàn)居中。 translateX(a) //在X方向平移a的像素距離。 translateY(a)//在Y方向平移a的像素距離。 translateZ(a)//在Z方向平移a的像素距離。 如何使用css3實現(xiàn)條環(huán)進度條效果步驟(代碼) 步驟一:HTML部分 <div class="progress_wrap js_halfClassNameObj">
<div class="right under">
<div class="circleProgress rightcircle"></div>
</div>
<div class="left under">
<div class="circleProgress leftcircle"></div>
</div>
<div class="right up">
<div class="circleProgress rightcircle js_progressRight"
style="-webkit-transform:rotate('+circleData.rightRotate.toString()+'deg)"></div>
</div>
<div class="left up">
<div class="circleProgress leftcircle js_progressLeft"
style="-webkit-transform:rotate('+circleData.leftRotate.toString()+'deg)"></div>
</div>
//percent小于50時需要使用遮罩進行遮擋超出環(huán)形范圍部分
<div class="left up_left_cover js_giftLeftCover" style="display:'+circleData.leftCircleDisplay+'">
<div class="circleProgress leftcircle color_border_t_l04"></div>
</div>
<div class="num">
<div>剩余</div>
<div class="js_giftPercent">'+circleData.percent+'%</div>
</div>
</div>步驟二:css部分 .progress_wrap{
position: relative;
margin:0 0 0 .14rem;
width:.92rem;height:.92rem;
//little和more用來展示黃色和綠色的效果
&.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;
}
}
//用遮擋實現(xiàn)左側(cè)剩余百分比,遮住超出環(huá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;
//實際值為195deg,被遮擋環(huán)顏色值深有光暈,需要將角度進行微調(diào)(-191deg)
進行完全遮擋
-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)取進度環(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,左半圓需要使用遮罩進行遮擋,展示剩余部分
// >50%:左半圓占比100%,右半圓直接使用百分比計算所占部分即可
//注意:在半圓中計算百分比時,要將百分比乘以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)計算需要*2倍
}
circleData = {
leftRotate:leftRotate, //左半環(huán)進度
rightRotate:rightRotate, //右半環(huán)進度
halfClassName:halfClassName, //50% 進度環(huán) 變色
leftCircleDisplay:leftCircleDisplay, //左半環(huán)遮罩
percent:per //進度百分比
}
return circleData
}實現(xiàn)效果如圖所示
以上就是環(huán)形進度條效果怎么實現(xiàn)?用css3實現(xiàn)環(huán)形進度條效果代碼示例的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章! 網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學科中所使用的生產(chǎn)和維護的網(wǎng)站。 |
溫馨提示:喜歡本站的話,請收藏一下本站!