Recuperation de couleur [Résolu]

Signaler
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
-
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
-
Bonjour !
Voila j ai un tableau en html et je colorie les case grace a du css imbriqué dans les tag <td> et j aurais aimé savoir comment recuperer la couleur du background de cette case.
de plus la couleur etant definie en hexa j aimerais savoir comment enlever le premier caractere
ex:
#00FF00 => 00FF00

Merciiii

--------------------------------------------------------------------------------------------------
         Ilvaut mieux poser une question et passer pour bête que le rester toutesa vie

9 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
bonjour,

test

<script type="text/javascript">
 alert(document.getElementById("toto").style.backgroundColor);
</script>

attention : tel que c'est là 
IE,Opera renvoient #ffff80
le renard de feu,lui : rgb(255, 255, 128)

cordialement   Bul   
Site
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

test

<script type="text/javascript">

function rgb (r, g, b) {
var n = (r<<16) + (g<<8) + b;
return '#' + (r<16? '0':'') + n.toString(16);
}

var sColor = document.getElementById("toto").style.backgroundColor;
alert (sColor);
if (sColor.substring(0,3)=="rgb") {
    sColor = eval(sColor);
}

alert (sColor);
</script>
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
je vais qd meme donner une partie de code que j ai faite ...
function over(id){
          var aCouleurPlage=new Array();
          iBegin=document.getElementById('value_begin').value=id;
        iBetween=(parseInt(document.getElementById('timebetween').value)/15);
        iEnd=id+iBetween;
        iTime=(iBegin+1)*15;
        if(iEnd>96){
          iEnd=96;
        }
          document.getElementById('value_end').value=iEnd;
          for(iBegin=iBegin;iBegin<iEnd;iBegin++){
                hColor=document.getElementById(iBegin).style.backgroundColor;
                dColor=hex2dec(hColor);
                alert(hColor);
               
                aCouleurPlage[iBegin]=
            document.getElementById(iBegin).style.backgroundColor='blue';
        }
    }

en gros ca sert a surligner suivant un interval mais j aimerais inverser les couleurs du au surlignement
--------------------------------------------------------------------------------------------------
         Ilvaut mieux poser une question et passer pour bête que le rester toutesa vie
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
ok ca marche parfaitement !!!
Merci Bultez !

--------------------------------------------------------------------------------------------------
         Ilvaut mieux poser une question et passer pour bête que le rester toutesa vie
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
ah bah comme ca plus de probleme entre navigateur ^^

--------------------------------------------------------------------------------------------------
         Ilvaut mieux poser une question et passer pour bête que le rester toutesa vie
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
et dire que je m'était em%µ¤$~# à examiner
le contenu des rgb pour résoudre ce souci !
( en plus un peu compliqué puisque certains navigateurs
  mettent des espaces, d'autres pas  ! )

et la solution est là, toute simple

reste à malalam à coller ça dans snippets,
   ça devrait pouvoir servir.

cordialement   Bul   
Site
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hmmm...
Nan.
Parce que le code n'est pas de moi ;-)
Je l'ai trouvé au fil de mes pérégnigrations sur le net :-)
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
oui et le code marche pas completement
les couleurs etant #0000FF perdent leur zero sauf le premier grace a ceci :
    (r<16? '0':'')
La bonne fonction rgb ca donne ca ...(je dis pas que c la solution la plus legere mais au moins elle fonctionne

function rgb (r, g, b) {
        var n = (r<<16) + (g<<8) + b;    //entier base 10
        var iValColor=dec2hex(n); //entier en base 16
        var sChaineColor='';
        for(iCharChaineColor=iValColor.length;iCharChaineColor<6;iCharChaineColor++){
            sChaineColor='0'+sChaineColor;
        }
        return '#' + sChaineColor + iValColor;
    }

--------------------------------------------------------------------------------------------------
         Ilvaut mieux poser une question et passer pour bête que le rester toutesa vie
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
j ai oublier de mettre le corps de la fonction dec2hex(n)
Le voici ...

function dec2hex(dec){
        var hexa='0123456789ABCDEF',hex=''
        while (dec>15){
            tmp=dec-(Math.floor(dec/16))*16;
            hex=hexa.charAt(tmp)+hex;
            dec=Math.floor(dec/16);
        }
        hex=hexa.charAt(dec)+hex;
        return(hex);
    }

et ca a été repris sur js cs ce source enfin je crois
--------------------------------------------------------------------------------------------------
         Ilvaut mieux poser une question et passer pour bête que le rester toutesa vie