用css3實現圓形進度條
使用css3的圓角、旋轉、剪切屬性實現圓形進度條,原理不難,兩次剪切加一次旋轉。 進度條分左右兩邊,50%一下操作右邊的就行,超過50%操作左邊的 樣式隨便寫的,代碼如下:
html部分:
<div class="div1"> <div class="right-div2"> <div class="right-div3"></div> </div> <div class="left-div2"> <div class="left-div3"></div> </div> </div> <div class="div4"><span>0</span>%</div>
最內層的div3裁剪一半然后旋轉需要的角度,
父級div2裁剪一半,此時已經裁剪出來了那個扇形了
最后在上面加個圓形遮蓋層
css代碼:
.div1, .right-div2, .right-div3, .left-div2, .left-div3 { width:200px; height:200px; border-radius:50%;} .div1 { background:#ccc; position:relative;} .right-div2, .right-div3, .left-div2, .left-div3 { position:absolute; left:0; top:0;} .right-div2, .right-div3 { clip:rect(0,auto,auto,100px);} .left-div2, .left-div3 { clip:rect(0,100px,auto,auto);} .right-div3 { background:#f00; transform:rotate(-180deg);} .left-div3 { background:#f00; transform:rotate(-180deg);} .div4 { position:absolute; top:25px; left:25px; width:150px; height:150px; line-height:150px; text-align:center; border-radius:50%; background:#fff;}
js代碼:
$(function(){ var a = 0; var b = 0; var timer = setInterval(function(){ a++; if(a<=50){ //-180deg是0%,轉換一下 b = a*3.6-180; $('.right-div3').css('transform','rotate(' + b + 'deg)'); }else if(a>50&&a<=100){ //超過50%,需要修改左邊的,右邊0deg是50% $('.right-div3').css('transform','rotate(0)'); //左邊0deg是100%,轉換一下 b = a*3.6-360; $('.left-div3').css('transform','rotate(' + b + 'deg)'); }else{ clearInterval(timer); return; } $('.div4 span').html(a); },200); });
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!