jQuery实现html可联动的百分比进度条


Posted in jQuery onMarch 26, 2020

最近需要一个HTML可以联动的百分比进度条,网上找了一下没有,自己手动实现了一个。

需要解决的问题,AB两个进度条需要按照百分比A+B=100%,A进度条可以拖动,B进度条联动,并且有进度颜色的变化。实现功能如下:

HTML代码:

<div class="percentage-container" >
  <div class="a-percentage" data-x='30'>
   <div class="a-percentage-bar"></div>
  </div>
 <div class="b-percentage" data-x='70'>
   <div class="b-percentage-bar"></div>
  </div>
</div>

CSS代码:

.percentage-container {
 margin: 20px auto;
 width: 600px;
 text-align: center;
}
 
.percentage-container .a-percentage {
 margin: 0;
 width: 400px;
 cursor:pointer;
}
 
.a-percentage {
 float:left;
 padding: 2px;
 background: rgba(0, 0, 0, 0.25);
 border-radius: 6px;
 -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25), 0 1px rgba(255, 255, 255, 0.08);
 box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25), 0 1px rgba(255, 255, 255, 0.08);
}
 
.a-percentage-bar {
 position: relative;
 height: 16px;
 border-radius: 4px;
 -webkit-transition: 0.2s linear;
 -moz-transition: 0.2s linear;
 -o-transition: 0.2s linear;
 transition: 0.2s linear;
 -webkit-transition-property: width, background-color;
 -moz-transition-property: width, background-color;
 -o-transition-property: width, background-color;
 transition-property: width, background-color;
 -webkit-box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.25), inset 0 1px rgba(255, 255, 255, 0.1);
 box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.25), inset 0 1px rgba(255, 255, 255, 0.1);
 background: url("img/stripes.png") 0 0 repeat;
 background-color: #FF5400;
}
 
.percentage-container .b-percentage {
 margin: 0;
 width: 400px;
 cursor:pointer;
}
 
.b-percentage {
 float:left;
 padding: 2px;
 background: rgba(0, 0, 0, 0.25);
 border-radius: 6px;
 -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25), 0 1px rgba(255, 255, 255, 0.08);
 box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25), 0 1px rgba(255, 255, 255, 0.08);
}
 
.b-percentage-bar {
 position: relative;
 height: 16px;
 border-radius: 4px;
 -webkit-transition: 0.2s linear;
 -moz-transition: 0.2s linear;
 -o-transition: 0.2s linear;
 transition: 0.2s linear;
 -webkit-transition-property: width, background-color;
 -moz-transition-property: width, background-color;
 -o-transition-property: width, background-color;
 transition-property: width, background-color;
 -webkit-box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.25), inset 0 1px rgba(255, 255, 255, 0.1);
 box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.25), inset 0 1px rgba(255, 255, 255, 0.1);
 background: url("img/stripes.png") 0 0 repeat;
 background-color: #FF5400;
}

JS代码:

$(document).ready(function (){
 var w = $('.a-percentage').width();
 var pos_x = $('.a-percentage').offset().left;
 var inti_x = $('.a-percentage').attr('data-x')*4;
 setProgressAndColor(inti_x, w);
 
 $('.a-percentage').click(function(e) { 
 var x = e.originalEvent.x || e.originalEvent.layerX || 0; 
 x = x - pos_x;
 if(x > 0 && x < w){
  setProgressAndColor(x, w);
 }
 });
});

function setProgressAndColor(p, width){
 $('.a-percentage-bar').width(p)
 $('.a-percentage-bar').css('background-color',calcColor(p));
 var per = Math.floor(p/4);
 $('.a-percentage-bar').attr('data-x',per);
 
 $('.b-percentage-bar').width(width-p)
 $('.b-percentage-bar').css('background-color',calcColor(width-p));
 per = 100-per;
 $('.b-percentage-bar').attr('data-x', per);
}

function calcColor(x){
 var R = 255
 var G = 15;
 var tmp = Math.floor(G+x);//取整保证RGB值的准确
 if(tmp <= 255){
 return 'rgb(255,'+tmp+',15)'
 } else {
 R = (R-(tmp-255));
 return 'rgb('+R+',255,15)'
 }
}

用了简单JQuery做支撑,需要引入JQuery看效果。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jquery自定义显示消息数量
Dec 19 jQuery
jQuery EasyUI window窗口使用实例代码
Dec 25 jQuery
jQuery第一次运行页面默认触发点击事件的实例
Jan 10 jQuery
轻松搞定jQuery+JSONP跨域请求的解决方案
Mar 06 jQuery
jQuery中可见性过滤器简单用法示例
Mar 31 jQuery
jQuery滑动效果实现方法分析
Sep 05 jQuery
利用jquery和BootStrap实现动态滚动条效果
Dec 03 jQuery
jQuery实现的点击显示隐藏下拉菜单功能完整示例
May 17 jQuery
如何使用CSS3+JQuery实现悬浮墙式菜单
Jun 18 jQuery
高效jQuery选择器的5个技巧实例分析
Nov 26 jQuery
基于jQuery实现可编辑的表格
Dec 11 jQuery
多种类型jQuery网页验证码插件代码实例
Jan 09 jQuery
jquery css实现流程进度条
Mar 26 #jQuery
jquery实现上传文件进度条
Mar 26 #jQuery
jquery实现进度条状态展示
Mar 26 #jQuery
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
Mar 20 #jQuery
jQuery实现点击滚动到指定元素上的方法分析
Mar 19 #jQuery
jQuery实现颜色打字机的完整代码
Mar 19 #jQuery
jQuery使用ajax传递json对象到服务端及contentType的用法示例
Mar 12 #jQuery
You might like
php你的验证码安全码?
2007/01/02 PHP
php删除指定目录的方法
2015/04/03 PHP
thinkphp 手机号和用户名同时登录
2017/01/20 PHP
JavaScript的目的分析
2007/01/05 Javascript
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
jQuery中:gt选择器用法实例
2014/12/29 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
2016/04/01 Javascript
前端性能优化及技巧
2016/05/06 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
python批量修改文件名的实现代码
2014/09/01 Python
python将ip地址转换成整数的方法
2015/03/17 Python
python数据分析数据标准化及离散化详解
2018/02/26 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
Python3的socket使用方法详解
2020/02/18 Python
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
电脑饰品店的创业计划书
2014/01/21 职场文书
小学生成长感言
2014/01/30 职场文书
《草虫的村落》教学反思
2014/02/16 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
5s推行计划书
2014/05/06 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
Python控制台输出俄罗斯方块移动和旋转功能
2021/04/18 Python
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL