当前位置: 首页 > news >正文

网站友情链接对方网站没有加入本站链接对本站有没有影响?网站建设文化代理商

网站友情链接对方网站没有加入本站链接对本站有没有影响?,网站建设文化代理商,有没有免费的直播视频,网站无法发送邮件wordpress能用现成组件就用,实现不行再自己写,因为牵扯到上传文件,进度实时出不来,所以只能使用dom元素操作; 1.实现 效果: 上图是100%,如果需要根据百分比显示,我们需要看下代码里面left和…

能用现成组件就用,实现不行再自己写,因为牵扯到上传文件,进度实时出不来,所以只能使用dom元素操作;

1.实现

效果:

上图是100%,如果需要根据百分比显示,我们需要看下代码里面left和right的旋转角度,这个圆实现上,以垂直直径切割,是左右两部分,调整css transform即可。

代码如下:

html

percentHtml.innerHTML = `<div class="progress"><span class="title"></span><div class="overlay"></div><div class="left" style="transform: rotate(${get_deg(percenNum)?.left_deg}deg);z-index: ${get_deg(percenNum)?.zIndex_left};"></div><div class="right" style="transform: rotate(${get_deg(percenNum)?.right_deg}deg);"></div></div>`

css

* {box-sizing: border-box;padding: 0;margin: 0;}.progress {width: 20px;height: 20px;color: #fff;border-radius: 50%;overflow: hidden;position: relative;background: #dcdcdc;text-align: center;line-height: 200px;box-shadow: 2px 2px 2px 2px white;mask: radial-gradient(transparent 7px, #000 8px);-webkit-mask: radial-gradient(transparent 7px, #000 8px)}.progress .overlay {width: 50%;height: 100%;position: absolute;top: 0;left: 0;z-index: 1;background-color: #dcdcdc;}.progress .left,.progress .right {width: 50%;height: 100%;position: absolute;top: 0;left: 0;border: 10px solid #29b6f6;border-radius: 100px 0px 0px 100px;border-right: 0;transform-origin: right;}

 2.原理及函数

可以用这个原理实现百分比:

1)0%,left为0deg(z-index为0,因为right在左边,所以需要index为0至在灰色下面),right为0deg;

2)当百分比小于50%且不为0的时候,左边不需要百分比:继续为0度,右边180度是50%,计算出1%是多少度:180 / 50% = 3.6度(度/1%),乘以百分比即可;

3)大于50%,right为180deg,left对应:100%是0deg,z-Index = 10,75%对应-90deg,以此为例,那么计算规律是,75% - 50% = 25%,25 * 3.6 = 90,因为left是逆时针计算,所以需要用180 - 90 = 90,再添加一个符号即可(数学上直接减180结果一样),就是-90deg。

4)100%,left为0deg(z-index=10,覆盖左侧overlay),right为180deg;

如下函数:

const get_deg = (percent: number) => {let left_deg=0, right_deg=0, zIndex_left = 0;const one_percent_deg = 180 / 50; // (3.6度/1%)if (percent) {if (percent <=50 && percent > 0) {console.log('小于50大于0');left_deg = 0;right_deg = percent * one_percent_deg;} else if (percent > 50 && percent < 100) {console.log('50到100');left_deg = (percent - 50) * one_percent_deg - 180;zIndex_left = 10;right_deg = 180;} else if (percent === 100) {console.log('等于100');left_deg = 0;zIndex_left = 10;right_deg = 180;}}return {left_deg,right_deg,zIndex_left} 
}

特别注意一点,在 左侧半圆环,大于50%的时候,需要给左侧添加z-index=100,因为:其实他们左右的颜色大小都是不变的,只是在旋转,给我们视觉上的效果,就像是百分比一样。

我们给左侧限制了-180度的最小值,就是不让他旋转到右侧,而右侧0度的最小限制也是一个意思。

在大于50%的时候右侧为180度,我们看如果75%的时候,也是就左侧25%,且设置右侧小于180度会发生什么:

这里设置的左侧旋转-90度,右侧为80度,我们清晰的看到左侧的环形会来到右侧,中间会有缝隙,当然我们大于50%的时候,右侧会占满,同时使用z-index灵活去遮挡,就给我们视觉上看到正确的百分比,这里需要理解并实践。

注:代码参考自网络,有改变,仅做记录、参考使用

http://www.yayakq.cn/news/874436/

相关文章:

  • 多肉建设网站的目的及功能定位wordpress如何加入点赞
  • 建立网站平台需要多少钱wordpress mssql
  • 安徽网站设计wordpress博客主题修改
  • 福建省教师空间建设网站上海远程教育网站设计与开发公司
  • 怎样发展网站建网站要会什么
  • 东莞清溪网站建设wordpress添加验证码
  • 杭州网站推广优化微信公众号登录不上
  • 餐饮网站模板企业网上年审营业执照
  • 安徽建设教育协会网站上海政务服务网
  • 网站域名的选择月夜影视在线观看免费完整版韩剧
  • 招聘网站页面网站研发
  • 怎么用手机做网站编辑wordpress导航单页
  • 小榄网站设计爱网盘
  • 四川网站建设seo什么什么设计英文网站
  • 网站制作 郑州dw一级网页制作教程
  • 网站开发的经验技巧网站建设项目进度计划书
  • 襄阳网站建设楚翼网络周口seo优化
  • 网站建设代理网站wordpress图片关联文章
  • 快设计网站官网广州最新今天的消息
  • 邢台做网站的公司有那个企业营销型网站的内容
  • 网站 主营业务注册公司费用是多少
  • 苏州工业园区建设主管部门网站一般vs做的网站的总体框架
  • 网站地址怎么申请注册电器网站建设策划书
  • 网站建设捌金手指下拉二五网络公共关系
  • 建设网站都需要哪些内容南昌seo网站管理
  • 买个网站域名多少钱一年浏览器网站大全免费
  • 济南网站建设与维护庆阳定制网站
  • 重庆市建设工程造价管理站做网站编程要学什么
  • 网站建设中要尽量使用图片wordpress文章详情展示不了
  • 中山品牌网站建设报价建筑网78