動(dòng)態(tài)扇形圖是一種利用CSS實(shí)現(xiàn)的動(dòng)態(tài)效果,既可以美化網(wǎng)頁,也可以展現(xiàn)數(shù)據(jù)的變化。
在實(shí)現(xiàn)動(dòng)態(tài)扇形圖效果時(shí),需要用到CSS的animation屬性和transform屬性,以及偽元素和變量。
.sector{ position: relative; width: 200px; height: 200px; border-radius: 50%; overflow: hidden; } .sector::before{ content: ""; position: absolute; width: 100%; height: 100%; top: 0; left: 0; border-radius: 50%; animation: sector 5s infinite linear; } @keyframes sector { 0% { transform: rotate(0deg); box-shadow: inset 100px 0px 0px rgba(255,0,0, 0.5); } 25% { box-shadow: inset 100px 0px 0px rgba(255,0,0, 0.5), inset 100px 100px 0px rgba(0,255,0, 0.5); } 50% { box-shadow: inset 100px 0px 0px rgba(255,0,0, 0.5), inset -100px 100px 0px rgba(0,255,0, 0.5); } 75% { box-shadow: inset 100px 0px 0px rgba(255,0,0, 0.5), inset -100px -100px 0px rgba(0,255,0, 0.5); } 100% { transform: rotate(360deg); box-shadow: inset 100px 0px 0px rgba(255,0,0, 0.5), inset 100px -100px 0px rgba(0,255,0, 0.5); } }
上述代碼中,通過設(shè)置偽元素的box-shadox屬性讓扇形圖呈現(xiàn)出不同的階段性變化。
同時(shí),還可以通過JS控制變量實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)的展現(xiàn),進(jìn)一步增強(qiáng)動(dòng)態(tài)扇形圖的功能。