实现一扇形生成器

本文介绍了如何使用SVG、HTML和CSS3的conic-gradient属性实现扇形生成器。通过模拟三角形和应用圆锥渐变,创建出各种扇形效果。需要注意的是,conic-gradient的浏览器支持度有限,可能需要借助垫片库解决兼容性问题。

虽互不曾谋面,但希望能和您成为笔尖下的朋友

以读书,技术,生活为主,偶尔撒点鸡汤

不作,不敷衍,意在真诚吐露,用心分享

点击左上方,可关注本刊

标星公众号(ID:itclanCoder)

d2cb57f0b205282b934daefa172a2238.gif

(具体实例效果可以点击文末左下方阅读原文)

实现扇形生成器

svg实现

<svg width="226" :height="226">
  <path d="M 199.56 40.37 A 113 113 0 0 0 2.47 89.51 L 113 113 Z" fill="#B4331A"></path>
</svg>

模拟三角

.sector-container {
    width: 160px;
    height: 160px;
    background: transparent;
    border-radius: 50%;
    position: relative;
    overflow: hidden;
  }
  .sector-container span {
    position: absolute;
    left: 50%;
    top: 0;
    width: 0;
    height: 0;
    border-style: solid;
    transform-origin: bottom center;
  }
  .sector-container span:nth-child(1) {
    transform: translate(-50%, 0) rotate(15deg);
    border-width: 80px 21.4359px 0 21.4359px;
    border-color: #00adb5 transparent transparent transparent;
  }
  .sector-container span:nth-child(2) {
    transform: translate(-50%, 0) rotate(45deg);
    border-width: 80px 21.4359px 0 21.4359px;
    border-color: #00adb5 transparent transparent transparent;
  }

html模板

<div class="sector-container">
  <span></span>
  <span></span>
</div>

使用conic-gradient属性

.sector {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: conic-gradient(transparent 11.11%, #00adb5 11.11% 33.33%, transparent 22.22%);
}

注意事项

conic-gradient支持性不是很好,谨慎使用,目前只在chrome 69及以上支持

可以使用polyfill垫片库,解决兼容性问题。垫片库会根据css语法,生成对应的圆锥渐变图案,并且转化为 base64 代码

<script src="//cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
<script src="//leaverou.github.io/conic-gradient/conic-gradient.js"></script>

8545856f1409a04be2eb7bf6df2e2c39.png

记账就用轻记账

c748908141bc16f955146634e0bbe9b5.png

文章都看完了7cff6a86257d06efd103529f9f9ac9a4.gif不点个在看吗

34f95390d70895f9e3a0d342296129f2.gif

戳原文,即可阅读原文哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值