Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 6th, 2012  |  syntax: None  |  size: 1.38 KB  |  hits: 9  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. jQuery: change css color based on inline style width
  2. <div id="progress_bar" class="meter-bg">
  3.         <div class="meter" style="width: 67%;">
  4.         </div>
  5.     </div>
  6.        
  7. var oMeter = $('.meter');
  8. var percent = 100 * (oMeter.width() / $('#progress_bar').width());
  9.  
  10. if (percent < 33)
  11. {
  12.      oMeter.css('background-color', 'green');
  13. }
  14. else if (percent > 33 && percent <= 66)
  15. {
  16.      oMeter.css('background-color', 'orange');    
  17. }
  18. else
  19. {
  20.      oMeter.css('background-color', 'red');
  21. }
  22.        
  23. function setupMeter() {
  24.     var oMeter = $('.meter');
  25.     var percent = 100 * (oMeter.width() / oMeter.closest('.meter-bg').width());
  26.  
  27.     if (percent < 33) {
  28.         oMeter.css('background-color', 'green');
  29.     }
  30.     else if (percent > 33 && percent <= 66) {
  31.         oMeter.css('background-color', 'orange');
  32.     }
  33.     else {
  34.         oMeter.css('background-color', 'red');
  35.     }
  36. }
  37.  
  38. // Example when loading from AJAX:
  39. $.get("some_content.html", function(data) {
  40.     $('#container').html(data);
  41.     setupMeter();
  42. });
  43.        
  44. var p = 74; // your percentage from someplace
  45. var colors = ['one','two','three']; // names of your css classes
  46. var chosen = colors[0];
  47. i = 1;
  48. while(i < colors.length) {
  49.     var m = Math.round((i/colors.length) * 100);
  50.     if(p > m){  
  51.         chosen = colors[i];
  52.         i++;      
  53.         continue;
  54.     }
  55.     break;
  56. }
  57. console.log(chosen) // chosen now contains the array var you want depending on % p