2012-03-31 45 views
14

Tôi đang sử dụng thanh tiến trình này:Làm thế nào để thay đổi màu sắc của một bootstrap (twitter) thanh tiến trình trong thời gian chạy

http://twitter.github.com/bootstrap/components.html#progress

Và muốn để cho nó một màu tùy chỉnh, chỉ được biết đến trong thời gian chạy (nên hardcoding nó trong css hoặc ít hơn tập tin không phải là một lựa chọn)

tôi đã thử này:

<div class="progress"> 
    <div id='pb' class="bar" style="width: 80%"></div> 
</div> 

<script> 
    $('#pb').css({'background-color': "red"}) 
</script> 

không thành công.

Trả lời

4

Bạn nên thay đổi lớp div vùng chứa để thay đổi màu.

Ví dụ sử dụng .progress-nguy hiểm cho màu đỏ:

<div class="progress progress-danger"> 
    <div class="bar" style="width: 60%;"></div> 
</div> 

Nhiều màu sắc (chỉ nút thay thế cho sự tiến bộ trong tên lớp). http://twitter.github.com/bootstrap/base-css.html#buttons

Cập nhật: Để thêm tên lớp trong thời gian chạy với javascript hãy nhìn vào http://snipplr.com/view/2181/ hoặc http://api.jquery.com/addClass/ nếu bạn đang sử dụng jQuery.

Hy vọng điều đó sẽ hữu ích.

+0

Vui lòng xem xét chỉnh sửa câu trả lời của bạn để không phải là câu trả lời liên kết vô ích trong tương lai. –

+0

Xin chào Leandro. Quan điểm của tôi là: "thay vì lộn xộn với màu sắc trong js của bạn, bạn chỉ có thể thay đổi lớp yếu tố để tiến bộ-bất cứ điều gì, mà là một lớp được xác định trước được cung cấp bởi bootstrap". Tôi chắc rằng có rất nhiều câu hỏi trên SO giải thích cách thay đổi một lớp css trên một phần tử trong thời gian chạy. Nếu bạn thích cắt & dán hãy xem các câu trả lời khác. –

+0

Cảm ơn bạn đã trả lời. Trên thực tế, tôi hỏi bạn là một quy tắc ettiquete trong SO. –

33

Mã của bạn thực sự hoạt động, chỉ cần thanh tiến trình thực sự sử dụng độ dốc làm màu thay vì thuộc tính solid background-color. Để thay đổi màu nền, thiết lập background-image để none và màu sắc của bạn sẽ được nhặt:

$('#pb').css({ 
    'background-image': 'none', 
    'background-color': 'red' 
}); 
+0

Cảm ơn, điều đó đã hiệu quả. –

+0

@MaxL.Tôi vui mừng :) nếu câu trả lời là thỏa đáng, hãy đánh dấu nó như vậy bằng cách đánh dấu vào dấu kiểm màu xanh bên cạnh câu trả lời bạn chọn, để đóng cửa cho câu hỏi. –

2

Bạn có nghĩa là làm thế nào để thay đổi màu sắc vào nhau trong thời gian chạy?

Tôi chỉ có thể tưởng tượng bạn làm như bạn chưa đánh dấu bất kỳ ai là chính xác. Trong trường hợp bạn làm có ý nghĩa này, sau đó có một cái nhìn tại jsFiddle này rất tối thiểu

HTML

<div class="progress"> 
    <div class="bar bar-success" style="width: 0%; opacity: 1;"></div> 
</div> 

JS

jQuery(document).ready(function(){ 
    window.percent = 0; 
    window.progressInterval = window.setInterval(function(){ 
     if(window.percent < 100) { 
      window.percent++; 
      jQuery('.progress').addClass('progress-striped').addClass('active'); 
      jQuery('.progress .bar:first').removeClass().addClass('bar') 
      .addClass ((percent < 40) ? 'bar-danger' : ((percent < 80) ? 'bar-warning' : 'bar-success')) ; 
      jQuery('.progress .bar:first').width(window.percent+'%'); 
      jQuery('.progress .bar:first').text(window.percent+'%'); 
     } else { 
      window.clearInterval(window.progressInterval); 
      jQuery('.progress').removeClass('progress-striped').removeClass('active'); 
      jQuery('.progress .bar:first').text('Done!'); 
     } 
    }, 100); 
}); 

http://jsfiddle.net/LewisCowles1986/U9xw6/

+0

Wow Tôi thích điều này! –

Các vấn đề liên quan