Modifier les classes CSS en JavaScript

Chaque fois que nous travaillons avec les éléments DOM à l’intérieur du JavaScript, il y a des moments et des situations où nous devons fournir des interactions aux éléments HTML. Par exemple, changer les couleurs de fond d’un élément au clic de l’utilisateur, masquer un élément, modifier l’apparence d’un élément, etc. Cela peut se faire la plupart du temps en changeant les classes.

Le langage JavaScript vous offre différentes manières de faire tout cela. Voyons différentes méthodes à l’aide desquelles nous pouvons modifier les classes CSS à partir des éléments HTML.

Différentes manières de modifier la classe CSS en JavaScript

Ci-dessous, nous avons un document HTML qui se compose d’un seul élément div à l’intérieur de la balise body. Nous avons également une balise style qui contient un identifiant et deux classes.

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Document</title>
  <style>
    #dimensions{
      width: 500px;
      height: 500px;
    }
    .bg_1{
      background-color: crimson;
    }

    .bg_2{
      background-color: teal;
    }
  </style>
</head>
<body>

  <div id="dimensions" class="dimensions bg_1">
  
  <script>
      let myDiv = document.getElementById('dimensions');
      
      myDiv.addEventListener("click", function(e) {
          
      });
  </script>

</body>
</html>

L’identifiant avec le nom dimensions contient la largeur et la hauteur. Les bg_1 et bg_2 sont deux classes qui ont une propriété background-color avec les couleurs crimson et teal, respectivement. La dimensions et bg_1 sont appliquées à l’élément HTML à l’intérieur de la balise body.

D’après le code, vous pouvez voir que nous avons déjà stocké l’élément div à l’intérieur de la variable myDiv en utilisant la méthode document.getElementById() et en passant cet élément id (dans ce cas dimensions) sous forme de chaîne à l’intérieur.

Notre objectif ici est de changer la couleur de fond de l’élément div de cramoisi à bleu sarcelle en changeant la classe bg_1 avec bg_2. Cela ne se fera que lorsque l’utilisateur sera sur l’élément div. Pour cela, nous avons également ajouté l’événement onClick en utilisant la méthode addEventListener() sur la variable myDiv à l’intérieur du JavaScript.

Nous suivrons différentes manières d’y parvenir, comme indiqué ci-dessous. Tout le code que nous écrirons ci-dessous ira à l’intérieur de la méthode addEventListener() sous la balise script.

Utilisation de la méthode className

Le moyen le plus simple de modifier une classe CSS en JavaScript est d’utiliser la méthode className. En utilisant cette méthode, vous pouvez remplacer toutes les classes existantes déjà présentes sur l’élément HTML par d’autres classes. Vous pouvez spécifier toutes les nouvelles classes que vous souhaitez ajouter sous forme de chaîne avec séparation d’espace.

myDiv.className = "bg_2";

Notez que cela remplacera toutes les classes existantes présentes sur l’élément par les nouvelles classes.

Utilisation des méthodes classList.remove et classList.add

Toutes les classes présentes sur l’élément HTML sont accessibles à l’aide de la méthode classList. En utilisant classList.remove, vous pouvez supprimer une classe spécifique, et en utilisant classList.add, vous pouvez ajouter de nouvelles classes à l’élément. Dans notre exemple, nous allons d’abord supprimer la classe bg_1 en utilisant classList.remove, puis ajouter une nouvelle classe, c’est-à-dire bg_2 en utilisant classList.add comme indiqué ci-dessous.

myDiv.classList.remove("bg_1");
myDiv.classList.add("bg_2");

C’est ainsi que nous modifions les classes CSS en utilisant ces méthodes.

Utilisation de la méthode classList.replace()

Une autre façon de changer la classe CSS est d’utiliser la méthode classList.replace(). Cette méthode prend deux arguments, le premier est la classe existante qui est déjà présente sur l’élément que l’on veut remplacer (Dans ce cas bg_1), et le second est la nouvelle classe que vous voulez ajouter à l’élément (Dans ce cas bg_2).

myDiv.classList.replace("bg_1", "bg_2");

Ce sont quelques-unes des méthodes à l’aide desquelles nous pouvons modifier les classes CSS en JavaScript.