<html> <head> <meta charset="UTF-8"> <title>扇形繪制</title> <style> .shanxing{ position: relative; width: 200px; height: 200px; border-radius: 100px; background-color: yellow; } .sx1{ position: absolute; width: 200px; height: 200px; transform: rotate(0deg); clip: rect(0px,100px,200px,0px); /*這個(gè)clip屬性用來繪制半圓,在clip的rect范圍內(nèi)的內(nèi)容顯示出來,使用clip屬性,元素必須是absolute的 */ border-radius: 100px; background-color: #f00; /*-webkit-animation: an1 2s infinite linear; */ } .sx2{ position: absolute; width: 200px; height: 200px; transform: rotate(0deg); clip: rect(0px,100px,200px,0px); border-radius: 100px; background-color: #f00; /*-webkit-animation: an2 2s infinite linear;*/ } /*繪制一個(gè)60度扇形*/ .shanxing1 .sx1{transform: rotate(-30deg);} .shanxing1 .sx2{transform: rotate(-150deg);} /*繪制一個(gè)85度扇形*/ .shanxing2 .sx1{transform: rotate(-45deg);} .shanxing2 .sx2{transform: rotate(-140deg);} /*繪制一個(gè)向右扇形,90度扇形*/ .shanxing3 .sx1{transform: rotate(45deg);} .shanxing3 .sx2{transform: rotate(-45deg);} /*繪制一個(gè)顏色扇形 */ .shanxing4 .sx1{transform: rotate(45deg);background-color: #fff;} .shanxing4 .sx2{transform: rotate(-45deg);background-color: #fff;} /*繪制一個(gè)不同顏色半圓夾角 */ .shanxing5 .sx1{transform: rotate(45deg);background-color: #f00;} .shanxing5 .sx2{transform: rotate(-45deg);background-color: #0f0;} </style> </head> <body> 扇形制作原理,底部一個(gè)純色原形,里面2個(gè)相同顏色的半圓,可以是白色,內(nèi)部半圓按一定角度變化,就可以產(chǎn)生出扇形效果 <p>/*繪制一個(gè)60度扇形*/</p> <div class="shanxing shanxing1"> <div class="sx1"></div> <div class="sx2"></div> </div> <p>/*繪制一個(gè)85度扇形*/</p> <div class="shanxing shanxing2"> <div class="sx1"></div> <div class="sx2"></div> </div> <p>/*繪制一個(gè)向右扇形,90度扇形*/</p> <div class="shanxing shanxing3"> <div class="sx1"></div> <div class="sx2"></div> </div> <p>/*繪制一個(gè)顏色扇形 */</p> <div class="shanxing shanxing4"> <div class="sx1"></div> <div class="sx2"></div> </div> <p>/*繪制一個(gè)不同顏色半圓夾角 */</p> <div class="shanxing shanxing5"> <div class="sx1"></div> <div class="sx2"></div> </div> </body> </html>
下面這個(gè)是結(jié)合css+html5+javascript的一個(gè)更復(fù)雜的圓環(huán)圖形
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>circle</title> <style type="text/css"> #myCanvas{} #nihao{ position: absolute; top:10px; z-index: 1; } </style> </head> <body style="background:#FBFBFB;"> <canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;"> not suopport canvas </canvas> <div id="nihao"></div> <script> var text=document.getElementById("nihao"); text.innerHTML="woshiwuxinguo"; var i=0.9;//這里默認(rèn)設(shè)置好評(píng)率為90% var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.beginPath(); ctx.lineWidth=10; ctx.strokeStyle="gray"; ctx.arc(100,75,50,0,2*Math.PI); ctx.fillStyle="#FBFBFB"; ctx.fill(); ctx.stroke(); ctx.beginPath(); ctx.translate(100,75); ctx.rotate(-90*Math.PI/180); ctx.strokeStyle="#FFCFCF"; ctx.arc(0,0,50,0,2*Math.PI*i); ctx.stroke(); c.addEventListener("mouseover", function(e) { ctx.beginPath(); ctx.strokeStyle="gray"; ctx.arc(0,0,50,0,2*Math.PI); ctx.stroke(); var finish=i; var step=0; var internal=setInterval(function(e) { console.log("step:"+step); if(step<finish){ step=step+0.01; ctx.beginPath(); ctx.strokeStyle="#FFCFCF"; ctx.arc(0,0,50,0,2*Math.PI*step); ctx.stroke(); }else{ clearInterval(internal); } }, 0.5) }, true) </script> </body> </html>
更多CSS之如何繪制任意角度的扇形相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com