您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

CSS之如何绘制任意角度的扇形

2024/4/3 17:18:03发布19次查看
扇形制作原理,底部一个纯色原形,里面2个相同颜色的半圆,可以是白色,内部半圆按一定角度变化,就可以产生出扇形效果
<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); /*这个clip属性用来绘制半圆,在clip的rect范围内的内容显示出来,使用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;*/ } /*绘制一个60度扇形*/ .shanxing1 .sx1{transform: rotate(-30deg);} .shanxing1 .sx2{transform: rotate(-150deg);} /*绘制一个85度扇形*/ .shanxing2 .sx1{transform: rotate(-45deg);} .shanxing2 .sx2{transform: rotate(-140deg);} /*绘制一个向右扇形,90度扇形*/ .shanxing3 .sx1{transform: rotate(45deg);} .shanxing3 .sx2{transform: rotate(-45deg);} /*绘制一个颜色扇形 */ .shanxing4 .sx1{transform: rotate(45deg);background-color: #fff;} .shanxing4 .sx2{transform: rotate(-45deg);background-color: #fff;} /*绘制一个不同颜色半圆夹角 */ .shanxing5 .sx1{transform: rotate(45deg);background-color: #f00;} .shanxing5 .sx2{transform: rotate(-45deg);background-color: #0f0;} </style> </head> <body> 扇形制作原理,底部一个纯色原形,里面2个相同颜色的半圆,可以是白色,内部半圆按一定角度变化,就可以产生出扇形效果 <p>/*绘制一个60度扇形*/</p> <div class="shanxing shanxing1"> <div class="sx1"></div> <div class="sx2"></div> </div> <p>/*绘制一个85度扇形*/</p> <div class="shanxing shanxing2"> <div class="sx1"></div> <div class="sx2"></div> </div> <p>/*绘制一个向右扇形,90度扇形*/</p> <div class="shanxing shanxing3"> <div class="sx1"></div> <div class="sx2"></div> </div> <p>/*绘制一个颜色扇形 */</p> <div class="shanxing shanxing4"> <div class="sx1"></div> <div class="sx2"></div> </div> <p>/*绘制一个不同颜色半圆夹角 */</p> <div class="shanxing shanxing5"> <div class="sx1"></div> <div class="sx2"></div> </div> </body> </html>
下面这个是结合css+html5+javascript的一个更复杂的圆环图形
<%@ 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;//这里默认设置好评率为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之如何绘制任意角度的扇形。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product