<HTML><HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- ;
function init()               // On initialise
{
  startr=255;                 // Départ couleur rouge
  startv=255;                 // Départ couleur vert
  startb=255;                 // Départ couleur bleue
  endr=200;                   // Fin couleur rouge
  endv=128;                   // Fin couleur vert
  endb=255;                   // Fin couleur bleue
  crtr=startr;                // Couleur rouge courante
  crtv=startv;                // Couleur vert courante
  crtb=startb;                // Couleur bleue courante
  steps=90;                   // Nombre de changement à effectuer
  stop=false;                 // Pas d'arrêt pour le moment
  deltar=(startr-endr)/steps; // Incrément de rouge par changement
  deltav=(startv-endv)/steps; // Incrément de vert par changement
  deltab=(startb-endb)/steps; // Incrément de bleu par changement
  hexa="0123456789ABCDEF";    // Chaine de conversion décimal/hexa
  document.bgColor=rvb(crtr,crtv,crtb);    // Couleur de départ au document
  var x=window.setTimeout('fadein()',500); // Lance le délai pour changement
}
function rvb()                // Routine de conversion (oubliez !)
{
return "#"+dh(Math.floor(crtr))+dh(Math.floor(crtv))+dh(Math.floor(crtb));
}
function dh(x)                // Sous-routine (oubliez aussi pour le moment)
{
  y=Math.floor(x/16);
  z=Math.floor(x%16);
  return(hexa.charAt(y)+hexa.charAt(z));
}
function fadein()             // Routine de changement max-min
{
  crtr=crtr-deltar;  if (crtr<0){crtr=0;}  // Rouge-incrément
  crtv=crtv-deltav;  if (crtv<0){crtv=0;}  // Vert-incrément
  crtb=crtb-deltab;  if (crtb<0){crtb=0;}  // Bleu-incrément
  // Si la valeur d'une des trois couleurs est plus petite
  // que le minimum, on est arrivé
  if ((crtr<=endr)||(crtv<=endv)||(crtb<=endb))
  {
    // Si l'arrêt n'est pas demandé on vas dans l'autre sens
    // avec la routine fadeout
    if (stop==false){var x=window.setTimeout('fadeout()',500);}
  }
  else // Sinon, si l'on a pas atteint et dépassé le minimum
  {
    document.bgColor=rvb(crtr,crtv,crtb);  // Nouvelle couleur
    // Et on continue dans la même veine...
    if (stop==false){var x=window.setTimeout('fadein()',500);}
  }
}
function fadeout()             // Routine de changement min-max
{
  crtr=crtr+deltar;  if (crtr>255){crtr=255;} // Rouge+incrément
  crtv=crtv+deltav;  if (crtr>255){crtr=255;} // Vert+incrément
  crtb=crtb+deltab;  if (crtr>255){crtr=255;} // Bleu+incrément
  // Si on dépasse la valeur de départ des couleurs
  if ((crtr>=startr)||(crtv>=startv)||(crtb>=startb))
  {
    x=Math.random();                       // Valeur aléatoire
    endr=Math.floor((128*x)+127);          // entre 127 et 255
    x=Math.random();                       // pour le nouveau minimum
    endv=Math.floor((128*x)+127);          // de rouge vert et bleu
    x=Math.random();                       // (le maximum ne change pas)
    endb=Math.floor((128*x)+127);
    deltar=(startr-endr)/steps;            // recalcule l'incrément
    deltav=(startv-endv)/steps;            // de rouge, vert et bleu
    deltab=(startb-endb)/steps;
    // Si l'arrêt n'est pas demandé on vas dans l'autre sens
    // avec la routine fadein
    if (stop==false){var x=window.setTimeout('fadein()',500);}
  }
  else // Sinon, si l'on a pas atteint et dépassé le maximum
  {
    document.bgColor=rvb(crtr,crtv,crtb);  // Nouvelle couleur
    // Et on continue dans la même veine...
    if (stop==false){var x=window.setTimeout('fadeout()',500);}
  }
}
function marre(){stop=true;}               // Pour arrêt au prochain délai
// -->
</script>
<TITLE>Couleurs changeantes</TITLE>
</HEAD>
<BODY onLoad="init()">

<FORM><INPUT TYPE="BUTTON" VALUE="Arrêt du massacre !" onClick="marre();"></FORM>

Ou pour les puristes:

<SCRIPT LANGUAGE="JAVASCRIPT"> document.write("<FORM><INPUT TYPE=\"BUTTON\" VALUE=\"Arrêt du massacre !\" onClick=\"marre();\"></FORM>"); </SCRIPT> Ce gadget ne fonctionnant que sous Javascript, pas besoin d'afficher un bouton d'arrêt pour ceux qui de toute façon ne voient rien se passer... </BODY> </HTML>


Pas de lien ici (utilisez le bouton de retour de votre navigateur).
Dernière mise à jour de cette page: 04/09/2001, visiteurs: depuis le 6 avril 2002