CSS+JS 实现动态曲线进度条
由于系统UI风格升级,产品童鞋和UI童鞋总是想要搞点儿事情出来,项目页面上的进度条从直线变成了曲线,哈哈,好吧,那就迎难而上
实现效果:

1.简单搞一搞 CSS , 此处代码有折叠
.process {
width: 110px;
box-sizing: border-box;
margin: 0 auto;
height: 55px;
overflow: hidden;
}
.ring-def {
width: 110px;
height: 55px;
border-radius: 110px 110px 0 0;
border: 2px solid #E5E5E5;
border-bottom: none;
box-sizing: border-box;
}
.ring-color {
width: 110px;
height: 55px;
border-radius: 0 0 110px 110px;
border: 2px solid #ff6200;
border-top: none;
box-sizing: border-box;
transform-origin: top;
transition: 1s;
}
p {
text-align: center;
color: #828282;
}
input,
button {
width: 45px;
height: 30px;
line-height: 30px;
color: #828282;
font-size: 14px;
outline: none;
border: 1px solid #dddddd;
text-align: center;
}
分析一下实现思路:
想要曲线效果,首先就能想到 border-radius 属性
两个大小宽高一致的div,设置不同的边款颜色,一个隐藏,一个显示
动态获取进度条时,隐藏的半圆,通过角度换算,旋转显示对应角度的弧长
搞事情,不多说,上代码
<div class="process">
<div class="ring-def"></div>
<div class="ring-color" id="ringColor"></div>
</div>
<p>
设置进度条:<input type="number" max="100" min="0" id="procNum"> % <button id="btn" onclick="getProcess()">确定</button>
</p>
<script>
function getProcess() {
// 此处input用户输入 模拟真实请求返回数据
var val = document.getElementById('procNum').value
var tmp = val <= 0 ? 0 : val >= 100 ? 100 : val
document.getElementById('procNum').value = tmp
var deg = Math.floor(tmp / 100 * 180)
document.getElementById('ringColor').style.transform = 'rotate(' + deg + 'deg)'
}
</script>
CSS+JS 实现动态曲线进度条的更多相关文章
- JS框架_(JQbar.js)柱状图动态百分比进度条特效
百度云盘 传送门 密码:q6rt 柱状图动态百分比进度条效果 <html> <head> <title>jqbar.js柱状图动态百分比进度条特效</titl ...
- Handler实现线程之间的通信-下载文件动态更新进度条
1. 原理 每一个线程对应一个消息队列MessageQueue,实现线程之间的通信,可通过Handler对象将数据装进Message中,再将消息加入消息队列,而后线程会依次处理消息队列中的消息. 2. ...
- AsyncTask用法解析-下载文件动态更新进度条
1. 泛型 AysncTask<Params, Progress, Result> Params:启动任务时传入的参数,通过调用asyncTask.execute(param)方法传入. ...
- JS -- 异步加载进度条
今天在博客园问答里面看到博友问道怎么实现Ajax异步加载产生进度条. 很好奇就自己写了一个. 展现效果: 1) 当点击Load的时候,模拟执行异步加载. 浏览器被遮挡. 进度条出现. 实现思路: 1. ...
- js页面加载进度条(这个就比较正式了,改改时间就完事儿)
不废话,直接上代码 思路不难,就是一个animate方法配合随机数 duration内个三秒钟,是自定义的,可以改成页面加载时间,这样就完美了 <!doctype html> <ht ...
- 【CSS系列】网页头部进度条方式一
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- html + css + jquery实现简单的进度条实例
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta ...
- 【css】如何实现环形进度条
最近团队的童鞋接到了一个有关环形进度条的需求,想要还原一个native的沿环轨迹渐变进度条的效果,看到这个效果的时候,笔者陷入了沉思.. 环形进度条的效果,最先想到的就是使用CSS利用两个半圆的hac ...
- HTML5+CSS+JQuery 实现简单的进度条功能
样式: <style type="text/css"> .processcontainer2{ width:450px; border:1px solid #6C9C2 ...
- js页面加载进度条
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- 前后端分离项目(vue+springboot)集成pageoffice实现在线编辑office文件
前后端分离项目下使用PageOffice原理图 集成步骤 前端 vue 项目 在您Vue项目的根目录下index.html中引用后端项目根目录下pageoffice.js文件.例如: <scri ...
- post请求和get请求区别及其实例
1.一般我们在浏览器输入一个网址访问网站都是GET请求;在FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式.HTTP定义了与服务器交互的不同方法, ...
- rocketmq 搭建配置
broker组1: # NameServer地址 namesrvAddr=192.168.1.100: 9876;192.168.1.101: 9876 # 集群名称 brokerClusterNam ...
- 深入剖析Arthas源码
一. 前言 Arthas 相信大家已经不陌生了,肯定用过太多次了,平时说到 Arthas 的时候都知道是基于Java Agent的,那么他具体是怎么实现呢,今天就一起来看看. 首先 Arthas 是在 ...
- 为什么wait()、notify()方法需要和synchronized一起使用
提示:更多优秀博文请移步博主的GitHub仓库:GitHub学习笔记.Gitee学习笔记 Obj.wait()与Obj.notify()必须要与synchronized(Obj)一起使用,也就是wai ...
- HTML——input之单行文本框
在 HTML 中,把 <input> 标签的 type 属性设置为 text 可以表示单行文本框,又叫做常规文本框.具体语法格式如下: <input type="text& ...
- 7.17考试总结(NOIP模拟18)[导弹袭击·炼金术士的疑惑·老司机的狂欢]
问灵十三载,等一不归人. 前言 这回考试全靠 T2 了,别的基本上没分(菜) 总感觉最近进度有亿点快,每天都在补坑,每天都在留坑.... T1 导弹袭击 解题思路 因为这个题的两种长度是不一定的,因此 ...
- 解决 Https 站点请求 Http 接口服务后报 the content must be served over HTTPS 错误的问题
问题分析 之前将自己所有的 Http 站点全部更新为 Https 站点,但是在请求后台接口服务的时候还是 Http 请求,导致部署之后,直接在控制台报 This request has been bl ...
- dom基本获取 标签文本操作
// 总结: // 1, 通过id属性值,获取标签对象 // document.getElementById() // 一个标签对象 ...
- 夜莺项目发布 v6.4.0 版本,新增全局宏变量功能
大家好,夜莺项目发布 v6.4.0 版本,新增全局宏变量功能,本文为大家简要介绍一下相关更新内容. 全局宏变量功能 像 SMTP 的配置中密码类型的信息,之前都是以明文的方式在页面展示,夜莺支持全局宏 ...