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 进入页面默认给已赋值的复选框打钩
Mar 23 jQuery
基于jquery实现二级联动效果
Mar 30 jQuery
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 jQuery
jQuery中的deferred对象和extend方法详解
May 08 jQuery
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 jQuery
全面解析jQuery中的$(window)与$(document)的用法区别
Aug 15 jQuery
jquery实现左右轮播图效果
Sep 28 jQuery
jQuery 导航自动跟随滚动的实现代码
May 30 jQuery
jquery分页优化操作实例分析
Aug 23 jQuery
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
jQuery实现图片切换效果
Oct 19 jQuery
jquery插件懒加载的示例
Oct 24 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
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
orm获取关联表里的属性值
2016/04/17 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
判断页面是关闭还是刷新的js代码
2007/01/28 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
node.js中的forEach()是同步还是异步呢
2015/01/29 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
2015/03/24 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
jquery轮播的实现方式 附完整实例
2016/07/28 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
jquery css实现邮箱自动补全
2016/11/14 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
基于原生js实现九宫格算法代码实例
2020/07/03 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
Python中包的用法及安装
2020/02/11 Python
python实现拼图小游戏
2020/02/22 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
小学生新年寄语
2014/04/03 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
2016公司年会通知范文
2015/04/25 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
天河观后感
2015/06/11 职场文书
换届选举主持词
2015/07/03 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
导游词之阆中古城
2019/12/23 职场文书
background-position百分比原理详解
2021/05/08 HTML / CSS
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电