Gestion des évènements
Les évènements permettent d'exécuter des actions en réponse aux interactions des utilisateurs avec une page web, comme l'appui sur une touche ou le déplacement de la souris. JavaScript utilise des écouteurs d’évènements pour détecter ces interactions et déclencher des fonctions en conséquence.
Introduction aux écouteurs d'évènements
Les écouteurs d'évènements (Event Listeners
) sont des fonctions attachées à un élément HTML qui se déclenchent lorsqu'un évènement spécifique se produit.
Ajout d’un écouteur d'évènements
Méthode recommandée :
element.addEventListener("event", function);
Exemple :
// Ajoute un écouteur pour le clic sur un bouton
let bouton = document.getElementById("monBouton");
bouton.addEventListener("click", function() {
alert("Bouton cliqué !");
});
évènements liés aux touches du clavier
Pour écouter un appui sur une touche ou une combinaison de touches, on utilise souvent les évènements keydown
, keyup
, ou keypress
.
- keydown : déclenché lorsqu'une touche est enfoncée.
- keyup : déclenché lorsqu'une touche est relâchée.
- keypress (déconseillé) : déclenché lors de la pression d’une touche mais est moins précis que
keydown
.
Exemple : détection d'une touche spécifique
document.addEventListener("keydown", function(event) {
if (event.key === "Enter") {
console.log("Touche Entrée appuyée");
}
});
Exemple : détection d'une combinaison de touches
On peut détecter une combinaison de touches comme Ctrl+C
ou Shift+A
en vérifiant les propriétés event.ctrlKey
, event.shiftKey
et event.altKey
.
document.addEventListener("keydown", function(event) {
if (event.ctrlKey && event.key === "c") {
console.log("Ctrl + C appuyé");
}
});
Propriétés des évènements au clavier
event.key
: renvoie la touche pressée (ex. :"a"
,"Enter"
).event.code
: renvoie le code physique de la touche (ex. :"KeyA"
,"Enter"
).event.ctrlKey
,event.shiftKey
,event.altKey
: renvoienttrue
si les touches Ctrl, Shift, ou Alt sont pressées.
évènements liés au curseur de la souris
Les évènements de la souris permettent de réagir aux mouvements, clics, et autres interactions avec le curseur.
Principaux évènements de la souris
- click : déclenché lorsqu'un élément est cliqué.
- dblclick : déclenché lors d'un double-clic.
- mousemove : déclenché lorsqu'on déplace la souris.
- mouseenter et mouseleave : déclenchés lorsque la souris entre ou quitte un élément.
- mousedown et mouseup : déclenchés lors de l'enfoncement et du relâchement d'un bouton de la souris.
Exemple : déplacements de la souris
Cet exemple affiche la position de la souris dans la console à chaque mouvement.
document.addEventListener("mousemove", function(event) {
console.log("Position de la souris : X = " + event.clientX + ", Y = " + event.clientY);
});
Exemple : clic droit (bouton droit de la souris)
On peut détecter un clic droit avec event.button
(0 pour le bouton gauche, 1 pour le bouton du milieu, 2 pour le bouton droit).
document.addEventListener("mousedown", function(event) {
if (event.button === 2) { // Bouton droit
console.log("Clic droit détecté");
}
});
Propriétés des évènements de souris
event.clientX
etevent.clientY
: position du curseur par rapport à la fenêtre.event.screenX
etevent.screenY
: position du curseur par rapport à l'écran.event.button
: identifiant du bouton de la souris (0 : gauche, 1 : milieu, 2 : droit).
Supprimer un écouteur d'évènement
Pour supprimer un écouteur d’évènement, il faut référencer la fonction à retirer lors de l’appel de removeEventListener
.
Exemple :
function afficheAlerte() {
alert("Alerte !");
}
let bouton = document.getElementById("monBouton");
bouton.addEventListener("click", afficheAlerte);
// Supprimer l'écouteur d'évènement
bouton.removeEventListener("click", afficheAlerte);
Exemples d’applications
- Formulaire validé par Entrée : Exécuter une validation de formulaire en appuyant sur
Enter
. - Zoom avec la Molette de la Souris : Modifier la taille d'une image ou d'un texte avec
wheel
. - Dessin avec la Souris : Créer un canevas où l'utilisateur peut dessiner en cliquant et déplaçant la souris.
Conclusion
Les écouteurs d'évènements permettent de capturer les interactions utilisateur et de rendre les pages web dynamiques. En combinant différents types d'évènements (clavier, souris), on peut créer une expérience utilisateur riche et interactive.