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返回定位插件详解
May 15 jQuery
jQuery实现frame之间互通的方法
Jun 26 jQuery
jQuery实现导航栏头部菜单项点击后变换颜色的方法
Jul 19 jQuery
jQuery实现用户信息表格的添加和删除功能
Sep 12 jQuery
jquery 键盘事件的使用方法详解
Sep 13 jQuery
jQuery第一次运行页面默认触发点击事件的实例
Jan 10 jQuery
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
jQuery实现的自定义轮播图功能详解
Dec 28 jQuery
jQuery实现checkbox全选、反选及删除等操作的方法详解
Aug 02 jQuery
jQuery/JS监听input输入框值变化实例
Oct 17 jQuery
jQuery三组基本动画与自定义动画操作实例总结
May 09 jQuery
jQuery实现鼠标拖拽登录框移动效果
Sep 13 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(1)
2006/10/09 PHP
PHP实现用户认证及管理完全源码
2007/03/11 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
PHP实现原比例生成缩略图的方法
2016/02/03 PHP
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
50个比较实用jQuery代码段
2011/09/18 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
简介JavaScript中Math.cos()余弦方法的使用
2015/06/15 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
js实现简单的二级联动效果
2017/03/09 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
Python程序中的观察者模式结构编写示例
2016/05/27 Python
python使用Matplotlib画饼图
2018/09/25 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
Python根据成绩分析系统浅析
2019/02/11 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
美国翻新电子产品商店:The Store
2019/10/08 全球购物
生产班组长岗位职责
2014/01/05 职场文书
双十佳事迹材料
2014/01/29 职场文书
公关活动策划方案
2014/05/25 职场文书
购房委托书
2014/10/15 职场文书
销售2014年度工作总结
2014/12/08 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
培训计划通知
2015/07/15 职场文书
Python中Selenium对Cookie的操作方法
2021/07/09 Python
oracle索引总结
2021/09/25 Oracle
Nginx设置HTTPS的方法步骤 443证书配置方法
2022/03/21 Servers