Gérer les événements sur un bouton en JavaScript
MandyTrl

MandyTrl @mdytrl

About: French 🥐 Web Developer

Location:
Paris, France
Joined:
Aug 31, 2023

Gérer les événements sur un bouton en JavaScript

Publish Date: Feb 4
0 0

Les boutons sont l'un des éléments les plus interactifs sur une page web. En JavaScript, on peut écouter plusieurs types d'événements pour réagir aux actions de l'utilisateur. Nous allons voir lesquels et comment les implémenter efficacement.

Les événements courants sur un bouton

🖱️ Le clic et le double-clic

Déclenché lorsqu'un utilisateur clique avec sa souris.

const bouton = document.getElementById("btn");

bouton.addEventListener("click", () => {
    alert("Bouton cliqué !")
})
Enter fullscreen mode Exit fullscreen mode

Moins utilisé, le double-clic peut être utile pour des actions avancées, notamment dans les jeux vidéo.

bouton.addEventListener("dblclick", () => {
    alert("Bouton double-cliqué !")
})
Enter fullscreen mode Exit fullscreen mode


Le survol avec mouseover et mouseout

Ces deux événements permettent de déclencher une action lorsque l'utilisateur passe la souris sur un bouton ou la quitte. Ici il est utilisé pour appliquer un style.

bouton.addEventListener("mouseover", () => {
    bouton.style.backgroundColor = "#d6bba7"
    bouton.style.color = "#663713"
})

bouton.addEventListener("mouseout", () => {
    bouton.style.backgroundColor = "#663713"
    bouton.style.color = "white"
})
Enter fullscreen mode Exit fullscreen mode


Le maintien avec mousedown et mouseup

Plus précis et moins utilisés que les événements précédents, mousedown et mouseup amorcent des actions lorsque l'utilisateur appuie (souvent utilisé pour différencier un simple clic vs un appui prolongé et déclencher des actions différentes) ou relâche le bouton.

bouton.addEventListener("mousedown", () => {
    console.log("Bouton pressé")
})

bouton.addEventListener("mouseup", () => {
    console.log("Bouton relâché");
})
Enter fullscreen mode Exit fullscreen mode


L'entrée et la sortie du focus avec focus et blur

Souvent utilisés pour les jeux vidéos ou par des personnes à l'accessibilité réduite, ces événements sont utiles pour détecter quand un bouton reçoit ou perd le focus clavier.

bouton.addEventListener("focus", () => {
    bouton.style.borderRadius = "50px"
})

bouton.addEventListener("blur", () => {
    bouton.style.borderRadius = "15px"
})
Enter fullscreen mode Exit fullscreen mode



Accessibilité et bonnes pratiques

L'accessibilité est essentielle pour assurer une bonne expérience utilisateur, notamment pour ceux qui utilisent des technologies d'assistance. Voici quelques conseils supplémentaires pour rendre vos boutons accessibles

  • Utiliser keydown et keyup pour permettre l'activation via le clavier :
bouton.addEventListener("keydown", (event) => {
    if (event.key === "Enter" || event.key === " ") {
        bouton.click()
    }
})
Enter fullscreen mode Exit fullscreen mode
  • Ajouter un attribut aria-label ou aria-labelledby est recommandé si le bouton n'a pas de texte visible afin que les utilisateurs de lecteurs d'écran puissent comprendre l'action du bouton.
<button id="btn" aria-label="Envoyer le formulaire">📩</button>
Enter fullscreen mode Exit fullscreen mode
  • Vérifier que les événements souris sont aussi accessibles au clavier en couplant par exemple les effets mouseover/mouseout avec focus/blur.
  • Ne pas supprimer le focus par défaut mais l'améliorer visuellement pour aider les utilisateurs à voir quel bouton est actif.



Aller plus loin

  • Gérer les événements de manière déléguée pour optimiser les performances, surtout lorsqu'on manipule un grand nombre d'éléments interactifs.
document.getElementById("container").addEventListener("click", (event) => {
    if (event.target.matches(".btn")) {
        alert("Bouton cliqué !")
    }
})
Enter fullscreen mode Exit fullscreen mode
  • Utiliser les événements tactiles touchstart et touchend pour rendre les boutons compatibles sur mobile.
  • Explorer l'intégration en React.

Et Voilà !


⭐ Bonus

⭐ Fiche récapitulative des événements des boutons en JavaScript:
      Télécharger la cheatsheet PDF

⭐ CodePen lié à l'article:
      CodePen: Apprendre les écouteurs d'événement en Javascript


series: "Comprendre les événements en JavaScript"

Comments 0 total

    Add comment