Recuperation de couleur

Résolu
Teclis01
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
- 19 juil. 2006 à 10:41
Teclis01
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
- 20 juil. 2006 à 12:23
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

cs_bultez
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
19 juil. 2006 à 11:21
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
3
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
19 juil. 2006 à 16:38
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>
3
Teclis01
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
19 juil. 2006 à 10:47
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
0
Teclis01
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
19 juil. 2006 à 11:34
ok ca marche parfaitement !!!
Merci Bultez !

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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Teclis01
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
19 juil. 2006 à 16:43
ah bah comme ca plus de probleme entre navigateur ^^

--------------------------------------------------------------------------------------------------
         Ilvaut mieux poser une question et passer pour bête que le rester toutesa vie
0
cs_bultez
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
19 juil. 2006 à 17:07
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
0
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
19 juil. 2006 à 17:54
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 :-)
0
Teclis01
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
20 juil. 2006 à 12:21
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
0
Teclis01
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
20 juil. 2006 à 12:23
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
0