11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour.

Je me demandais s'il y a un moyen pour que e.style.color renvoie la valeur hexadécimal ou s'il faut absolument convertir ?

Merci d'avance.
Modifié par CNeo (27 Aug 2007 - 17:47)
Salut,

En théorie, on devrait pouvoir faire :
var rgb = e.style.getPropertyCSSValue("color").getRGBColorValue();
alert(rgb.r + "," + rgb.g + "," + rgb.b);

Mais ce n'est actuellement pas implémenté à ma connaissance.
Firefox ne renvoie pas forcément la valeur RGB. par exemple :
e.style.color = "red";
alert(e.style.color); // "red"

La solution que je t'ai donnée devrait permettre d'avoir un résultat homogène, qu'il est ensuite facile de transformer en hexadécimal. Malheureusement, comme je l'ai dit, elle n'est pas implémentée.

Donc, pour répondre à ta question, à ma connaissance, non.
Modifié par Julien Royer (28 Aug 2007 - 13:58)
Julien Royer a écrit :
Tout d'abord, prends un autre ton avec les personnes qui te répondent.
Il n'y avait ni méchanceté ni critique dans mon esprit. Smiley confused
Julien Royer a écrit :
Donc, pour répondre à ta question, à ma connaissance, non.
Merci.
D'après mes souvenirs Firefox retourne du rgb, Safari du rgba et IE de l'hexa. Sachant que certains navigateurs (je sais plus trop lesquels, désolé, faudra que je reteste) convertissent tout seul les red/blue/lime dans leur système.

Perso j'ai un objet Color() qui convertit tout ça en .r, .g, .b et avec lequel je peux m'amuser ensuite à calculer des différences entre deux couleurs (marrant pour générer des dégradés ^^)
Tymlis a écrit :
D'après mes souvenirs Firefox retourne du rgb, Safari du rgba et IE de l'hexa. Sachant que certains navigateurs (je sais plus trop lesquels, désolé, faudra que je reteste) convertissent tout seul les red/blue/lime dans leur système.

Perso j'ai un objet Color() qui convertit tout ça en .r, .g, .b et avec lequel je peux m'amuser ensuite à calculer des différences entre deux couleurs (marrant pour générer des dégradés ^^)
Très interessant. Smiley smile
Pourquoi ne pas mettre cet objet dans le topic des scripts utiles ?
En l'état cet objet utilise d'autres fonctions/méthodes d'autres objets. J'essaierai de mettre tout ça ensemble et je posterai ça Smiley cligne
Sinon pour convertir de l'hexa en RGB, il y a cette fonction :

function hexToRGB (hex) {
if (hex.charAt(0)=='#') hex=hex.substring(1);
var rgb = parseInt(hex, 16);
var o = new Object();
o.red = (rgb>>16)&0xFF;
o.green = (rgb>>8)&0xFF;
o.blue = (rgb&0xFF);
return o;
}