html用border制作扇形,CSS之如何绘制任意角度的扇形

扇形制作原理,底部一个纯色原形,里面2个相同颜色的半圆,可以是白色,内部半圆按一定角度变化,就可以产生出扇形效果

扇形绘制

} .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;}

/绘制一个60度扇形/

/*绘制一个85度扇形*/

/*绘制一个向右扇形,90度扇形*/

/*绘制一个颜色扇形 */

/*绘制一个不同颜色半圆夹角 */

下面这个是结合css+html5+javascript的一个更复杂的圆环图形

circle

}

not suopport canvas

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

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值