摘要:顯而易見餅干為兩個(gè)削成了圓形的,我們重點(diǎn)演示果醬是怎么制作的如圖所示,大扇形由個(gè)小扇形構(gòu)成,每一小扇形占整個(gè)圓餅的,大扇形占整個(gè)圓餅的。則小扇形的圓心角為,三角形的高為,寬為。
閱讀此文需具備基本數(shù)學(xué)知識(shí):圓心角、弧度制、三角函數(shù)。
為實(shí)現(xiàn)如下效果嘔心瀝血:
當(dāng)然你可以擁抱 Svg...在此分享如何純 Css 打造圓環(huán)進(jìn)度條,只需三步!
此物乃 2 + 1 夾心餅干,藍(lán)綠色部分為果醬。顯而易見餅干為兩個(gè)削成了圓形的 div ,我們重點(diǎn)演示果醬是怎么制作的:
如圖所示,大扇形由 6 個(gè)小扇形構(gòu)成,每一小扇形占整個(gè)圓餅的 1/15 ,大扇形占整個(gè)圓餅的 6/15 。我們只需構(gòu)造一個(gè)扇形單元,將其復(fù)制 6 份后旋轉(zhuǎn)相應(yīng)角度連接至一起即可。
如何構(gòu)造扇形?用三角形偽裝...
三角形的寬高如何計(jì)算?假定圓半徑 $radius 為 100px,等分?jǐn)?shù) $count 為 15。則小扇形的圓心角為 360deg / 15 ,三角形的高為 100px,寬為 2 × 100px × tan(360deg / 15 / 2) 。其中 360deg / 15 / 2 轉(zhuǎn)化弧度制為 PI / 15 (PI == 360deg / 2)。
span { width: 0; height: 0; border: $radius solid transparent; $borderWidth: tan(pi() / $count) * $radius; border-left-width: $borderWidth; border-right-width: $borderWidth; }
數(shù)學(xué)欠佳的同學(xué)請自行科普...
對于 $count 為 1 或 2 的情況需特殊處理,因?yàn)?tan(PI) 及 tan(PI / 2) 為無窮值,不了解的同學(xué)請研究正切函數(shù)圖像:
相關(guān)代碼(其中 $diameter = 2 × $radius 為圓直徑):
span { @if $count == 1 { width: $diameter; height: $diameter; } @else if $count == 2 { width: $diameter; height: $radius; } @else { width: 0; height: 0; border: $radius solid transparent; $borderWidth: tan(pi() / $count) * $radius; border-left-width: $borderWidth; border-right-width: $borderWidth; } }
最后,復(fù)制并逐一旋轉(zhuǎn)扇形單元:
@for $index from 0 to $count { span:nth-child(#{$index + 1}) { $transform: translate(-50%, 0) rotate(360deg / $count / 2 + 360deg * $index / $count); $origin: if($count == 2, bottom, center); -webkit-transform: $transform; transform: $transform; -webkit-transform-origin: $origin; transform-origin: $origin; } }
果醬制作完畢,其它點(diǎn)綴請自行添加嘍...本例完整代碼在此。
由于本例引入了三角函數(shù)等數(shù)學(xué)運(yùn)算,使用 Sass 預(yù)編譯。未安裝 Sass 的同學(xué)可下載經(jīng)編譯的 源碼 開啟 sector.html 查看效果。
安裝 Sass 請參考 https://segmentfault.com/a/11... 文章末尾的安裝教程。
本例調(diào)試方法:
cd sector sass --watch style.scss:style.css --debug-info
作者:呆戀小喵
我的后花園:https://sunmengyuan.github.io...
我的 github:https://github.com/sunmengyuan
原文鏈接:https://sunmengyuan.github.io...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/112717.html
摘要:扇形制作原理,底部一個(gè)純色原形,里面?zhèn)€相同顏色的半圓,可以是白色內(nèi)部半圓按一定角度變化,就可以產(chǎn)生出扇形效果扇形繪制這個(gè)屬性用來繪制半圓,在的范圍內(nèi)的內(nèi)容顯示出來,使用屬性,元素必須是的繪制一個(gè)度扇形繪制一個(gè)度扇形 扇形制作原理,底部一個(gè)純色原形,里面2個(gè)相同顏色的半圓,可以是白色,內(nèi)部半圓按一定角度變化,就可以產(chǎn)生出扇形效果 扇形繪制 .shanxin...
摘要:扇形制作原理,底部一個(gè)純色原形,里面?zhèn)€相同顏色的半圓,可以是白色內(nèi)部半圓按一定角度變化,就可以產(chǎn)生出扇形效果扇形繪制這個(gè)屬性用來繪制半圓,在的范圍內(nèi)的內(nèi)容顯示出來,使用屬性,元素必須是的繪制一個(gè)度扇形繪制一個(gè)度扇形 扇形制作原理,底部一個(gè)純色原形,里面2個(gè)相同顏色的半圓,可以是白色,內(nèi)部半圓按一定角度變化,就可以產(chǎn)生出扇形效果 扇形繪制 .shanxin...
摘要:使用繪制的可交互扇形現(xiàn)有動(dòng)畫實(shí)現(xiàn)方式的不足和都不十分精確。為它們傳入的第二個(gè)參數(shù),實(shí)際上只是指定了把動(dòng)畫代碼添加到瀏覽器線程隊(duì)列中以等待執(zhí)行的時(shí)間。就是為了繪制而生,再合適不過了。感興趣的看官點(diǎn)擊這里本文轉(zhuǎn)載自筆者的個(gè)人博客 使用H5 canvas繪制的可交互扇形 requestAnimationFrame() 現(xiàn)有動(dòng)畫實(shí)現(xiàn)方式的不足 setTimeout和setInterval都不十...
閱讀 2757·2023-04-25 20:19
閱讀 2004·2021-11-24 09:38
閱讀 1728·2021-11-16 11:44
閱讀 4824·2021-09-02 15:40
閱讀 1440·2019-08-30 15:55
閱讀 2080·2019-08-30 15:52
閱讀 3844·2019-08-29 17:20
閱讀 2406·2019-08-29 13:48