`

JQuery实现的HTML可联动的百分比进度条

 
阅读更多

最近需要一个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实现html可联动的百分比进度条

    【jQuery实现html可联动的百分比进度条】是一种在网页中动态展示进度并保持两者之和为100%的交互设计。这种设计通常用于显示两个相关任务或资源的分配情况,例如时间分配、资源利用等。下面我们将详细介绍如何使用...

    jquery实现进度条特效

    jQuery,一个广泛使用的JavaScript库,提供了丰富的功能来简化DOM操作、事件处理和动画效果,其中包括实现进度条特效。本教程将详细介绍如何使用jQuery来创建自定义的进度条特效,并可以根据个人需求调整样式和风格...

    jquery 实现的进度条插件

    本篇文章将详细讲解如何利用jQuery实现一个进度条插件,以及其在程序进度显示和AJAX文件上传中的应用。 首先,进度条插件的核心功能是动态展示一个过程的完成度,它可以是一个下载、上传、渲染或其他耗时操作的状态...

    jquery和angularJS两种百分比进度条实现方式

    在本篇文章中,我们将探讨如何使用jQuery和AngularJS这两种流行的JavaScript库来实现百分比进度条。 首先,让我们了解jQuery的实现方式。jQuery是一个轻量级的JavaScript库,它简化了DOM操作、事件处理以及Ajax交互...

    jquery_uploadify实现的下载进度条

    《使用jQuery Uploadify实现下载进度条的详细指南》 在Web开发中,用户交互体验是至关重要的,尤其是在处理文件上传和下载这样的操作时。jQuery Uploadify是一个强大的JavaScript库,能够提供丰富的文件上传功能,...

    jQuery实现的网页步骤流程进度条特效源码.zip

    【标题】"jQuery实现的网页步骤流程进度条特效源码"是基于JavaScript库jQuery创建的一种交互式用户体验元素,主要用于在网页上展示用户操作的步骤流程和进度。这种效果通常用于多步骤表单提交、购物车结账过程或者...

    jQuery实现的会员等级消费进度条动画特效源码.zip

    《jQuery实现会员等级消费进度条动画特效解析》 在网页设计与开发中,用户体验往往扮演着至关重要的角色。为了提升用户交互性和视觉吸引力,开发者们常常会运用各种动态效果,如进度条动画。本篇文章将深入探讨如何...

    jquery带百分比的柱状图进度条代码

    本文将深入探讨如何使用jQuery实现一个带有百分比显示的柱状图进度条,这在数据可视化和用户界面设计中非常常见。 首先,我们需要理解进度条的基本结构。一个简单的进度条通常由一个容器元素(如`&lt;div&gt;`)和一个...

    利用Ajax+Jquery实现异步进度条效果

    "利用Ajax+Jquery实现异步进度条效果"这个主题正是围绕这一目标展开,它涉及到C#后端开发、.NET框架、Ajax技术以及Jquery库的前端应用。下面将详细阐述这些知识点。 首先,C#是一种面向对象的编程语言,广泛应用于...

    基于jquery bootstrap样式百分比进度条

    要实现基于jQuery和Bootstrap的百分比进度条,你需要以下步骤: 1. **引入库**:在HTML文件中,确保引入jQuery库和Bootstrap的CSS及JS文件。你可以通过CDN链接或本地文件来引入。 2. **HTML结构**:创建一个基础的...

    jQuery进度条插件设置百分比进度条样式代码

    本篇文章将详细讲解如何利用jQuery创建并设置百分比进度条样式。 首先,你需要引入jQuery库。这通常通过在HTML文档的`&lt;head&gt;`部分添加以下链接来实现: ```html &lt;script src="https://code.jquery....

    jquery+html5实现进度条加载特效.rar

    在这个“jquery+html5实现进度条加载特效.rar”压缩包中,我们很显然将探讨如何利用这两项技术来创建一个吸引人的进度条加载效果。进度条加载特效在网页中广泛应用,例如在数据加载、文件上传或下载过程中,为用户...

    jQuery HTML5百分比进度条特效.zip

    总结来说,"jQuery HTML5百分比进度条特效.zip"提供了一种利用现代Web技术实现的动态进度条解决方案,它结合了jQuery的便利性和HTML5的先进特性,通过CSS3动画提供了一种吸引人的用户体验。对于开发者而言,这不仅是...

    jQuery progressbar进度条插件提示进度条进度百分比数据

    本篇文章将深入探讨如何使用jQuery progressbar插件来创建并更新进度条,同时显示进度百分比数据。 首先,我们需要确保已经引入了jQuery库和jQuery UI库。通常,这些库可以通过CDN链接直接在HTML文件中引用,如下所...

    Jquery实现进度条显示百分比

    本教程将探讨如何使用jQuery来实现一个进度条,该进度条能够动态地显示百分比,这对于各种需要实时更新进度的场景,如文件上传、加载过程等非常有用。 首先,我们需要了解进度条的基本构成。一个进度条通常由一个...

    jQuery实现的动态数据步骤进度条特效源码.zip

    【标题】"jQuery实现的动态数据步骤进度条特效源码.zip"主要涉及到的是使用JavaScript库jQuery来创建一种视觉效果——动态数据步骤进度条。这种特效通常用于多步骤流程的展示,比如购物车结账过程、注册账户步骤或者...

    进度条 jquery

    在这个场景中,“进度条 jquery”意味着我们将讨论如何使用jQuery来实现或控制网页上的进度条效果。 在描述中提到的博文链接(已省略)可能包含了关于如何使用jQuery创建进度条的具体教程或示例。虽然没有具体的...

    jQuery实现的点击上传出现进度条动画特效源码.zip

    本资源"jQuery实现的点击上传出现进度条动画特效源码.zip"显然提供了一个使用jQuery来创建文件上传时显示进度条动画效果的示例代码。 在Web开发中,文件上传功能是一项基本需求,而进度条动画则可以提升用户体验,...

Global site tag (gtag.js) - Google Analytics