Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# couleur de progress bar

Envoyé par : rmabrouk

Date : 13/05/2010 18:27

bonjour, Dans un popup j'ai un progress bar, j'ai besoin d'un changement de couleur de progress bar:comme suit

CurVal=30% alors la couleur de progress bar est rouge? CurVal=50% alors la couleur de progress bar est vert? CurVal=100% alors la couleur de progress bar est rose?

# Re: couleur de progress bar

Envoyé par : mothsart

Date : 19/05/2010 19:39

Vu que j'ai eu des besoins quelques peu similaires, je t'ai créer ça. (ça ne sera pas systématique) Le code est perfectible vu qu'il a été créé dans la volée.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet type="text/css" href="chrome://global/skin/" ?>
<window xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" >
<script>
<![CDATA[
var progress_bar, progmeter;
window.addEventListener("load",start,true);
function start(){
  progress_bar = document.getAnonymousNodes(document.getElementById("my-progressmeter"))[0];
  progmeter = document.getElementById("colorChanger");
  progress_bar.setAttribute('style', '-moz-appearance:none;background-color:red;');
}
function add_progress(){
 var progress = parseInt(progmeter.getAttribute('value')) + 10;
 progmeter.setAttribute('value', progress);
}
function observe_percent(){
  if(progmeter.getAttribute('value') > 30){
    progress_bar.style.backgroundColor = 'green';
  }
  if(progmeter.getAttribute('value') > 50){
    progress_bar.style.backgroundColor = 'orange';
  }
}
]]>
</script>
<broadcasterset>
  <broadcaster id="colorChanger" value="0"/>
</broadcasterset>
<vbox flex="1" style="overflow: auto">
 <hbox >
  <groupbox>
  <caption label="determined" />
    <progressmeter id="my-progressmeter" style="-moz-appearance: none !important;
      background-color: white !important;" mode="determined" >
      <observes element="colorChanger" attribute="value" onbroadcast="observe_percent();"/>
    </progressmeter>
   <button label="Avance" oncommand="add_progress();" />
  </groupbox>
 </hbox>
</vbox>
</window>

Si tu veux comprendre le fonctionnement, le mieux est de lire cette page

Le bouton et sa fonction add_progress() ne sont là que pour te permettre d'avoir un exemple clé en main.

N'hésites pas si tu as des questions... le but étant d'apprendre.

(il vaut apprendre à un homme à pêcher plutôt que de lui offrir un poisson ;))

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.