Comment puis-je comparer deux valeurs de couleur dans jQuery / JavaScript?
- Je obtenir une valeur de couleur avec jQuery avec .css('color')
et puis, je sais la couleur qu'il devrait être.
Comment puis-je comparer la couleur de la valeur que je reçois de jQuery avec par exemple la couleur noire de la valeur?
source d'informationauteur newbie
Vous devez vous connecter pour publier un commentaire.
Ce sujet...
Remplacer 0, 0, 0 avec le rouge, le vert et le bleu les valeurs de la couleur de la valeur que vous souhaitez comparer.
.css() de jQuery API
Ici est une approche qui devrait fonctionner sur tous les navigateurs à l'aide de JQuery:
<div id="dummy" style="display:none;"></div>
sur votre page HTML. (La création de la maquette de l'élément de façon dynamique avec JQuery ne fonctionne pas pour les noms de couleurs)$('#dummy').css('color','black');
c'est à dire
J'ai eu un problème similaire où j'ai dû basculer le bgnd couleur d'un élément. Je l'ai résolu comme ceci:
Voici ma mise en œuvre de la réponse de Mike, en une seule fonction.
Vous n'avez pas besoin d'ajouter les éléments du DOM pour que cela fonctionne. Testé avec IE8, IE10, FF, Chrome, Safari.
En fait j'ai essayé Charlie Kilian est réponse. Pour une raison qu'il ne fonctionne pas lorsque vous tentez de définir
.css('color')
avec et " rgb(0,0,0) de valeur.Je ne sais pas pourquoi. A parfaitement fonctionné dans la console. Peut-être que c'était parce que ma comparaison est un objet javascript et son un contexte de question ou d'un problème de référence. De toute façon, enfin je me suis senti frustré et a écrit de ma propre fonction qui permettra de comparer les deux couleurs indépendamment des formats et ne crée pas d'éléments ou de s'appuyer sur jQuery. La fonction prend deux HEX et des valeurs RVB.
Il peut probablement être optimisé, mais je n'ai pas vraiment le temps maintenant. Espérons que cela aide quelqu'un son pur javascript.
Ces fonctions suivantes, j'ai pris de http://www.javascripter.net
CSS les Couleurs peuvent apparaître dans de nombreux formats -
rgb
rgba
#hex
à peine soutenu#hexalpha
infâme couleurs nommées, et letransparent
.Pour comparer la couleur de n'importe quelle couleur vous avez besoin de normaliser le premier.
Le
colorValues
fonction ici (gist) ou ici (SI réponse toujours de vous donner[r,g,b,a]
tableau de valeurs numériques.Ensuite, vous pouvez comparer comme ça:
colorValues fonction