Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer : 
Palette de couleurs Javascript - JQuery 
Toujours grâce à la contribution du 
JQuery  dans le 
code Javascript , nous allons voir comment construire une 
palette de couleurs  capable d'influer sur l'apparence de la page Web, aux choix de l'internaute.
Dans l'exemple illustré par la capture, l'utilisateur influe sur trois curseurs de trois barres de défilement pour modifier respectivement les composantes de couleurs rouge, vert et bleu. Instantanément, l'
arrière-plan de la page Web  adopte la 
couleur hexadécimale  ainsi retranscrite et dans le même temps, ces valeurs sont traduites sur la droite dans un calque aux bords arrondis.
Sources Web à télécharger 
Pour la mise en place de cette nouvelle 
astuce Javascript , nous proposons de télécharger des sources offrant une 
page Html  déjà structurée et accompagnée de ses ressources.
La décompression fournit le 
fichier de la page Web . Il est nommé 
index.htm . Il est accompagné des 
librairies JQuery  dans le 
sous dossier Js . Ce sont elles qui fournissent les 
méthodes  permettant de transformer de simples 
calques Html  (Div) en 
contrôles  fonctionnels, comme des 
barres de défilement  pour une 
palette de couleurs . Mais il est aussi accompagné de 
styles CSS  dans le 
sous dossier Css . Et parmi ces 
styles , certains sont directement associés aux 
méthodes JQuery  que nous appliquerons pour transformer ces 
contrôles Web . Il est important de comprendre que ces ressources sont livrées telles quelles sur la toile. Il n'y a plus qu'à les réceptionner et à les déclarer en 
référence de la page Html  pour les exploiter.
Structure Html de la page Web 
Nous l'avons annoncé, la 
page Html  est déjà amorcée et nous proposons de le constater.
A la racine du dossier de décompression, double cliquer sur le fichier index.htm , 
Il s'affiche ainsi dans le 
navigateur Web  par défaut. Le moins que l'on puisse dire est que la présentation apparaît dépouillée. Les barres de défilement des trois composantes de couleur ne sont pas présentes. Certes un calque aux bords arrondis se suggère. C'est lui qui doit résumer les composantes de couleurs construites dans la version RVB et dans la version hexadécimale. Mais nous allons le voir, à quelque chose prêt, ces contrôles existent déjà.
Ils sont en attente de transformation par le 
code JQuery .
A la racine du dossier de décompression, cliquer droit sur le fichier index.htm , 
Dans le menu contextuel, choisir de l'ouvrir avec un éditeur comme le Notepad ++, 
Tout d'abord et comme vous pouvez le voir, les références aux 
feuilles de styles CSS  et aux 
librairies JQuery  sont annoncées en 
entête de code Html , soit dans la 
section Head  de la page :
...<link rel="stylesheet" href="css/mes-styles.css">  
Plus bas dans le code, se situe un 
calque d'identifiant auCentre . C'est lui qui abrite la 
construction Html  qui nous intéresse :
...<div id="rouge"></div>  
Nous y trouvons quatre calques (balises Div). Les trois premiers doivent être transformés par le 
JQuery  en 
barres de défilement  pour représenter les composantes de couleurs rouge, vert et bleu. Ces couleurs seront déclenchées par l'application de la 
méthode JQuery slider . Elles sont régies par des styles inscrits dans le 
fichier les-styles.css  et associés à cette méthode. Le quatrième calque (msg) est plus classique. C'est lui qui doit résumer la situation lorsqu'un curseur de couleur est glissé ou qu'une barre de défilement est cliquée pour faire varier une composante. Il doit livrer le code couleur en version 
RVB  et en version 
hexadécimale .
Barres de défilement de couleurs 
Pour débuter la construction de cette 
palette de couleurs , la première mission consiste à transformer ces 
éléments Html  en 
contrôles JQuery  et plus spécifiquement en 
barres de défilement  colorées.
En bas de la page Html, dans la section de script , ajouter les instructions JQuery  suivantes : ...$("#rouge, #vert, #bleu").slider({  
Ce code n'est pas encapsulé dans une fonction. Donc il est destiné à se déclencher au 
chargement de la page Web . Grâce à l'alias du dollar, le 
code JQuery  prend possession à la fois des calques nommés rouge, vert et bleu. L'énumération des objets est l'une des facilités permises par le 
JQuery  pour leur appliquer ensemble la 
méthode JQuery slider . C'est elle, épaulée par les 
styles CSS  existants qui permet de transformer ces éléments en 
contrôles JQuery , plus précisément en 
barres de défilement . Il faut néanmoins veiller à bien renseigner ses arguments. Il s'agit de l'orientation en premier paramètre ou encore du comportement en second. Avec la 
valeur Min  pour le 
paramètre range , la couleur se répand du début jusqu'au curseur. Avec la valeur Max, ce serait l'inverse, donc en partant de la fin. Ensuite, avec l'
argument Max , nous définissons l'incrément le plus grand pour chaque barre. Avec le paramètre suivant, nous réglons pour chacune la valeur de départ, arbitrairement à 127. Enfin, les deux derniers paramètres ne sont pas encore implémentés. Ils concernent deux comportements à gérer au glissement du curseur ou au changement de valeur au clic sur la barre. Il s'agira de faire varier la couleur de l'arrière-plan en conséquence et d'en rendre compte textuellement dans le 
calque d'identifiant msg .
Enregistrer les modifications (CTRL + S) et revenir sur le navigateur Web (ALT + Tab), 
Dès lors, rafraîchir la page avec la touche F5 du clavier , 
Comme vous pouvez le voir, notre 
palette de couleurs  prend déjà forme. Les 
barres de défilement  sont cliquables. Chaque curseur peut aussi se déplacer par cliquer-glisser. Mais à ce stade bien entendu, aucune incidence n'est encore à observer sur la page Web.
Les valeurs ainsi générées par la combinaison des positions des curseurs sur les barres de défilement, doivent être passées à une fonction. Cette fonction doit se charger de transcrire ces composantes en 
code hexadécimal . Ce 
code hexadécimal  doit être appliqué à l'
attribut CSS background-color  du calque conteneur d'identifiant 
contenu .
Cette fonction, nous la créerons après l'avoir appelée. Elle doit être sollicitée lorsqu'un curseur est glissé, lorsqu'une barre de défilement est cliquée ou encore au chargement de la page tout simplement, puisque des positions sont définies par défaut pour chacun des trois curseurs. Cette fonction, nous choisissons de l'appeler 
actualiserInfos .
Adapter le code précédent avec les trois appels comme suit : ...actualiserInfos ,actualiserInfos actualiserInfos();  
Aussi étonnant que celui puisse paraître, si vous réactualisez la page Web à ce stade, les trois barres de défilement disparaissent. Pourtant la raison est toute simple. Une erreur Javascript majeure est générée avortant la suite du traitement. Une fonction est appelée au chargement de la page mais celle-ci est inconnue.
Les composantes de couleurs RVB 
La 
fonction actualiserInfos  a pour mission de récolter les valeurs des 
barres de défilement . Nous connaîtrons ainsi les 
composantes de couleurs . Et pour cela, il suffit de passer la donnée 
value  en paramètre de la 
méthode slider  appliquée sur chaque 
calque Html .
A la suite dans le script, créer la fonction actualiserInfos  comme suit : ... 
Le 
JQuery  permet l'énumération des variables à affecter grâce à la virgule. Nous récupérons donc la valeur de chaque couleur dans ces variables que nous nommons arbitrairement mais explicitement 
rouge , 
vert  et 
bleu . Il n'y a aucun risque d'ambiguïté avec les 
éléments Html  du même nom qui eux ne sont justement pas des variables. La 
variable hexa  est laissée de côté. Elle devra fournir le 
code hexadécimal  de la couleur par appel d'une fonction que nous créerons. Ensuite, dans le calque d'
identifiant msg , grâce à la 
méthode html , nous inscrivons les informations mises en forme restituant le code 
couleur RVB . Nous aurions pu utiliser la 
méthode JQuery text . Mais dans ces conditions, les subtilités de format comme le gras (<strong>) et le saut de ligne (<br />) n'auraient pas été permises. Concernant le 
code hexadécimal  qui n'est pas encore prêt, constatez que nous exploitons la 
méthode JQuery css  sur l'
élément Html  en réglant son 
attribut background-color  afin d'influer sur la couleur de fond du calque conteneur (contenu).
Enregistrer les modifications (CTRL + S) et basculer sur le navigateur Web (ALT + Tab), 
Puis, rafraîchir la page avec la touche F5 du clavier , 
Dès lors, déplacer quelques curseurs par cliquer-glisser ou clics sur les barres de défilement, 
Comme vous pouvez le voir, à défaut d'influer sur la couleur de fond pour l'instant, à chaque variation, les
composantes RVB de la couleur  sont restituées dans le calque aux bords arrondis, situé sur la droite.
Convertir une couleur RVB en code hexadécimal 
La 
conversion  des composantes numériques d'une 
couleur RVB  est relativement simple, à plus forte raison que le 
Javascript  propose une méthode de transcription. Elle se nomme 
toString .
Après la fonction actualiserInfos , créer la fonction Javascript RVBenHexa  comme suit : function RVBenHexa(r, v, b) { 
Elle attend donc trois paramètres. Il s'agit des 
trois composantes de couleur . Nous créons un 
tableau de variables  nommé 
hexa  sur la base de ces trois composantes transmises et aussitôt transcrites dans leurs équivalents textuels. Dès lors, nous exploitons la 
méthode Javascript join . Avec le paramètre des doubles côtes (""), les valeurs de ce tableau sont effectivement assemblées côte à côte pour reproduire le 
code hexadécimal  qui est rendu à l'appelant (return) en 
majuscules  grâce à la 
méthode toUpperCase .
Pour être exploitée, cette 
fonction RVBenHexa  doit être appelée dans la 
fonction actualiserInfos  pour affecter la 
variable hexa . C'est elle qui est effectivement utilisée pour appliquer ce code de couleur à l'arrière-plan du calque conteneur.
Dans la fonction actualiserInfos , adapter l'affectation de la variable hexa  comme suit : function actualiserInfos() {hexa = RVBenHexa(rouge, vert, bleu);   
Enregistrer les modifications et basculer sur le navigateur Web, 
Actualiser la page Html avec la touche F5 du clavier , 
Puis, déplacer quelques curseurs  de barres de défilement , 
Comme vous pouvez le voir, grâce à cette affectation récoltant les valeurs transcrites par la 
fonction RVBenHexa , en même temps que les codes de couleurs sont livrés dans le calque aux coins arrondis, l'arrière-plan du calque parent adopte la couleur correspondante.
Parcourir tous les caractères d'une chaîne 
Cependant, une anomalie assez discrète existe encore. Vous pouvez la déceler en tentant de réaliser de multiples échantillonnages de couleurs. Parfois, l'arrière-plan ne répond plus convenablement. La raison est simple. Le 
code hexadécimal de couleur  n'est plus composé de six caractères. Dans ces conditions, la couleur n'est pas comprise. Ce phénomène s'invite lorsque la transcription de l'une des 
composantes RVB  conduit à un seul caractère. Dans ces conditions, le code doit être comblé à l'aide d'un zéro en préfixe. C'est en quelque sorte une 
boucle For Each  que nous allons exploiter pour parcourir tous les éléments du tableau des composantes de couleurs transcrites.
Dans la fonction RVBenHexa , ajouter la boucle For Each  comme suit : function RVBenHexa(r, v, b) {$.each(hexa, function(nr, val)  
La boucle For Each passe en revue 
chaque élément du tableau hexa  passé en premier paramètre de la méthode. Les actions sont conduites par une fonction déclarée en second argument. Elle est elle aussi signée avec deux paramètres. Le premier correspond à l'élément du tableau tandis que le second correspond à sa valeur. Si la longueur de celle-ci (val.length=== 1) vaut un caractère, nous la complétons avec un zéro en préfixe pour que le code transcrit soit bien constitué de six éléments.
Si vous enregistrez les modifications, que vous actualisez la page Web et que vous agissez sur les curseurs de la 
palette de couleurs , rien ne change a priori. Pourtant, les quelques anomalies que vous auriez pu déceler sont cette fois corrigées. Toutes les positions, donc toutes les couleurs sont parfaitement interprétées.