jQuery實(shí)現(xiàn)html可聯(lián)動(dòng)的百分比進(jìn)度條
最近需要一個(gè)HTML可以聯(lián)動(dòng)的百分比進(jìn)度條,網(wǎng)上找了一下沒(méi)有,自己手動(dòng)實(shí)現(xiàn)了一個(gè)。
需要解決的問(wèn)題,AB兩個(gè)進(jìn)度條需要按照百分比A+B=100%,A進(jìn)度條可以拖動(dòng),B進(jìn)度條聯(lián)動(dòng),并且有進(jìn)度顏色的變化。實(shí)現(xiàn)功能如下:
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值的準(zhǔn)確
if(tmp <= 255){
return 'rgb(255,'+tmp+',15)'
} else {
R = (R-(tmp-255));
return 'rgb('+R+',255,15)'
}
}
用了簡(jiǎn)單JQuery做支撐,需要引入JQuery看效果。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 基于HTML5 Ajax文件上傳進(jìn)度條如何實(shí)現(xiàn)(jquery版本)
- jQuery實(shí)現(xiàn)文件上傳進(jìn)度條特效
- jQuery監(jiān)聽(tīng)文件上傳實(shí)現(xiàn)進(jìn)度條效果的方法
- jQuery實(shí)現(xiàn)簡(jiǎn)單的文件上傳進(jìn)度條效果
- Jquery Uploadify上傳帶進(jìn)度條的簡(jiǎn)單實(shí)例
- Jquery Uploadify多文件上傳帶進(jìn)度條且傳遞自己的參數(shù)
- jquery插件uploadify實(shí)現(xiàn)帶進(jìn)度條的文件批量上傳
- 基于Jquery插件Uploadify實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條上傳圖片
- jquery-file-upload 文件上傳帶進(jìn)度條效果
- Jquery和BigFileUpload實(shí)現(xiàn)大文件上傳及進(jìn)度條顯示
相關(guān)文章
jQuery實(shí)現(xiàn)給input綁定回車(chē)事件的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)給input綁定回車(chē)事件的方法,結(jié)合實(shí)例形式分析了2種常用的事件綁定操作技巧,需要的朋友可以參考下2017-02-02
jQuery修改li下的樣式以及l(fā)i下的img的src的值的方法
這篇文章主要為大家介紹了jQuery如何修改li下的樣式,以及修改li下的img的src的值,示例代碼很簡(jiǎn)單,一看就會(huì)2014-11-11
下拉列表選擇項(xiàng)的選中在不同瀏覽器中的兼容性問(wèn)題探討
使用jquery做了一個(gè)項(xiàng)目,下拉列表選擇項(xiàng)變化時(shí),獲取選中項(xiàng)的文本在不同瀏覽器中的兼容性問(wèn)題在本文將為大家介紹下2013-09-09
jQuery獲取文本節(jié)點(diǎn)之 text()/val()/html() 方法區(qū)別
在jquery中val,text,html都能取到值,或加一個(gè)參數(shù)來(lái)賦值,那么它們有些什么區(qū)別?2011-03-03
jQuery EasyUI API 中文文檔 - Draggable 可拖拽
jQuery EasyUI API 中文文檔 - Draggable 可拖拽,使用jQuery EasyUI的朋友可以參考下。2011-09-09
jQuery插件原來(lái)如此簡(jiǎn)單 jQuery插件的機(jī)制及實(shí)戰(zhàn)
這種插件是將對(duì)象方法封裝起來(lái),用于對(duì)通過(guò)選擇器獲取的jQuery對(duì)象進(jìn)行操作,是最常見(jiàn)的一種插件2012-02-02
jQuery插件FusionCharts繪制的3D環(huán)餅圖效果示例【附demo源碼】
這篇文章主要介紹了jQuery插件FusionCharts繪制的3D環(huán)餅圖效果,結(jié)合完整實(shí)例形式分析了jQuery使用FusionCharts載入xml格式數(shù)據(jù)繪制圖形的操作步驟與相關(guān)實(shí)現(xiàn)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2017-04-04
jQuery圖片特效插件Revealing實(shí)現(xiàn)拉伸放大
本文給大家分享的是jQuery圖片展示效果,使用的是jQuery Revealing插件,不點(diǎn)擊的情況下,圖片整齊排列成一行,當(dāng)任意一個(gè)圖片縮略圖被點(diǎn)擊的時(shí)候,該圖片就放大顯示,當(dāng)點(diǎn)擊關(guān)閉按鈕時(shí)圖片又重新還原了縮略圖模式。2015-04-04
如何實(shí)現(xiàn)星星評(píng)價(jià)(jquery.raty.js插件)
本文主要分享了用jQuery插件jquery.raty.js實(shí)現(xiàn)星星評(píng)價(jià)功能:后臺(tái)傳數(shù)據(jù),前臺(tái)顯示星星個(gè)數(shù)的具體方法。有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧2016-12-12

