2011-05-16 102 views
4

我有一個JQuery進度條,我想主題(文檔here)動態顯示:它會從紅色開始,然後隨着進度變爲黃色,最後變爲綠色。看起來這只是設置樣式顏色屬性的問題,但我似乎無法找到合適的屬性。動態更改jQuery進度條的顏色

+0

燦」當你更改進度條的值時,你是否添加顏色?即$(「.selector」).progressbar({value:37}).css('color','green'); – enoyhs 2011-05-16 04:14:03

+0

剛剛嘗試過。它不起作用。還是)感謝你的建議! – kerkeslager 2011-05-16 04:22:03

+0

剛剛意識到這實際上是初始化進度條。您可以嘗試:$(「.selector」).progressbar(「option」,「value」,37).css('color','green');.如果它不起作用,請在.progressbar之前添加css(..)(儘管我認爲這不會有什麼區別) – enoyhs 2011-05-16 04:26:09

回答

10

jQuery UI進度條沒有明確設置的顏色;相反,它會從UI主題繼承「小部件標題」背景圖像。然後,改變顏色的最簡單方法是設置覆蓋背景的樣式。例如:

.ui-progressbar.beginning .ui-progressbar-value { background: red; } 
.ui-progressbar.middle .ui-progressbar-value { background: yellow; } 
.ui-progressbar.end .ui-progressbar-value { background: green; } 

(或者,您也可以使用不同的背景影像。)然後,只需設置它的值時更改進度條的類:

function updateProgressbar(current, target) { 
    var value = parseInt(current/target * 100); 

    $progressbar 
     .progressbar("value", value) 
     .removeClass("beginning middle end") 
     .addClass(value < 40 ? "beginning" : value < 80 ? "middle" : "end"); 
} 

Working example.