Introduction
Dans ce laboratoire, nous allons explorer la manière de modifier la luminosité d'une chaîne de caractères de couleur hsl() à l'aide de JavaScript. En utilisant la manipulation de chaînes de caractères, les méthodes d'objets et les fonctions mathématiques, nous allons apprendre à modifier la valeur de luminosité tout en veillant à ce qu'elle reste dans la plage valide de 0 à 100. Cette compétence sera pratique lors du développement d'applications web nécessitant des manipulations de couleur dynamiques basées sur les interactions de l'utilisateur.
Comment modifier la luminosité d'une couleur HSL
Pour modifier la valeur de luminosité d'une chaîne de caractères de couleur hsl(), suivez ces étapes :
Ouvrez le Terminal/SSH et tapez
nodepour commencer à pratiquer la programmation.Utilisez
String.prototype.match()pour obtenir un tableau de trois chaînes de caractères avec les valeurs numériques de la chaînehsl().Utilisez
Array.prototype.map()en combinaison avecNumberpour convertir les chaînes de caractères en un tableau de valeurs numériques.Assurez-vous que la valeur de luminosité est dans la plage valide (entre
0et100) en utilisantMath.max()etMath.min().Utilisez une littérale de gabarit pour créer une nouvelle chaîne de caractères
hsl()avec la valeur de luminosité mise à jour.
Voici un extrait de code d'exemple qui met en œuvre ces étapes :
const changeLightness = (delta, hslStr) => {
const [hue, saturation, lightness] = hslStr.match(/\d+/g).map(Number);
const newLightness = Math.max(
0,
Math.min(100, lightness + parseFloat(delta))
);
return `hsl(${hue}, ${saturation}%, ${newLightness}%)`;
};
Vous pouvez ensuite appeler la fonction changeLightness() avec une valeur de delta et une chaîne de caractères hsl() pour obtenir une nouvelle chaîne de caractères hsl() avec la valeur de luminosité mise à jour. Par exemple :
changeLightness(10, "hsl(330, 50%, 50%)"); // 'hsl(330, 50%, 60%)'
changeLightness(-10, "hsl(330, 50%, 50%)"); // 'hsl(330, 50%, 40%)'
Sommaire
Félicitations ! Vous avez terminé le laboratoire Change Color Lightness. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.