Outils pour utilisateurs

Outils du site


isn:javascript2

Activité Javascript N°2 - gérer les touches du clavier

Présentation

JavaScript permet de gérer des événements. Pour chaque événement, un objet Event est créé et permet d'accéder à beaucoup d'informations sur l'événement actuellement déclenché. Cela permet par exemple :

  • lors de l'appui d'un touche du clavier de connaître de quelle touche il s'agit,
  • pour la souris d'avoir les coordonnées du clic.

La gestion des touches du clavier

La détection d'une touche du clavier se fait en ajoutant un gestionnaire d'événement sur le document c'est à dire sur la page HTML tout entière.

// Lorsqu'une touche est appuyée, lancer une fonction
document.addEventListener('keydown', fonctionToucheEnfoncee);
// Lorsqu'une touche est relachée, lancer une fonction
document.addEventListener('keyup', fonctionToucheRelachee);

La fonction appelée reçoit en paramètre l'objet Event et peut donc accéder aux informations liées à l'événement :

// gestion de l'appui d'une touche
function fonctionToucheEnfoncee(event) {
  // touche haut appuyée
  if(e.keyCode == '38') {
     // action à faire
  }
 
// Gestion du relachement d'une touche
function fonctionToucheRelachee(event) {
  // touche haut relachée
  if(e.keyCode == '38') {
     // action à faire
  }

Les événements keyup et keydown capturent toutes les frappes de touches : les lettres, chiffres, touches de fonction, flèches, ALT, CTRL, etc.

L'événement keypress capture uniquement les touches qui écrivent un caractère et non pas les touches qui n'affichent pas de caractère comme CTRL, ALT, etc.

Exemple pour la combinaison de touche Maj + A est gérée :

  • l'événement keypress détectera uniquement un A majuscule,
  • les événements keyup et keydown se déclencheront deux fois, une fois pour la touche Maj et une deuxième fois pour la touche A.

La propriété keyCode de l'objet Event renvoie le code ASCII de la touche pressée. Voici quelques exemples de touche et de leur code ASCII :

ToucheCode ASCII
Flèche gauche37
Flèche haut38
Flèche droite39
Flèche bas40

Activité Les langages pour créer des sites Web ...

isn/javascript2.txt · Dernière modification: 2018/05/03 20:42 (modification externe)