2012-06-15 7 views
1

disons, j'ai un calendrier - chaque entrée a une couleur de fond différente (une couleur par utilisateur). Il y a de la lumière et aussi des couleurs de fond sombres, pour que l'utilisateur puisse choisir sa couleur préférée. Maintenant, je voudrais définir la couleur du texte qui correspond au style de fond. Où et comment devrais-je commencer? Merci d'avance.Changement de la valeur de la couleur du texte en fonction de la couleur de fond qui est définie dynamiquement

+0

Veuillez marquer correctement votre question. – BoltClock

Répondre

2

Si vous êtes à la recherche d'un cas par une solution de cas, vous pouvez faire quelque chose comme ceci:

$("#Calendar .day").each(function() { 
    var $this = $(this); 

    //If the background color is black - set text color to white. 
    if($this.css("background-color") == "#000000") { 
     $this.css("color", "#FFFFFF"); 
    } 

    //A bunch more if statements 

}); 

AUSSI

Pour faciliter les choses, vous pouvez trouver la couleur complémentaire en utilisant ce code :

JS function to calculate complementary colour?

+0

+1 juste pour ce lien ... La question est trop large et pourrait être résolue de plusieurs façons. – lucuma

0

Vous pouvez juste essayer de prendre une inverse de la selec bitwise couleur de ted.

Je pense que cet extrait (en JavaScript) fera l'affaire.

var RGB_Value = "ffaacc" //set this var to the hex value the user selected 
var colorNum = parseInt(RGB_Value, 16); // assume radix of 16 (hex) and convert string to number 
var inverseColor = ~colorNum; //bitwise inverse of the number 
var RGB_Inverse = nMyNumber.toString(16); //convert the number into a hex string 
+0

Sonne bien - laissez-moi un peu plus profond: Je travaille dans Joomla, en utilisant un composant appelé DP Calendar. J'utilise également Community Builder avec les profils de membres listés - un champ de profil sert à définir la couleur d'arrière-plan - je viens d'ajouter un second pour la valeur de couleur du texte. La valeur des champs est appelée dans DP Calendar - afin que l'extrait fonctionne toujours? Je ne suis pas très bien dans JS - pour PHP et CSS est un peu plus proche de moi. Mais merci jusqu'ici. – user1385890

+0

Vous devriez être capable de faire quelque chose de fonctionnellement similaire du côté PHP; l'astuce consiste simplement à s'assurer que les composants RVB de la couleur sont traités comme un nombre plutôt qu'une chaîne, puis faire un inverse bit à bit. Il vous obtiendra une couleur INVERSE, pas une couleur complémentaire. Je ne suis pas un concepteur, donc je ne sais pas à quel point la distinction compte :) – Joe

+0

Eh bien, en fait, il n'y a pas de différence entre :) – user1385890

Questions connexes