Gestion d'évènements dans une page
Évènements dans une page
Définition
L'utilisateur peut interagir avec une page web, il peut par exemple :
- cliquer avec la souris sur un élément de la page ;
- appuyer sur une touche de son clavier ;
- passer son curseur au-dessus d'un élément de la page ;
- etc...
Chacune de ces interactions avec la page engendre ce que l'on appelle un évènement qui peut être associé à une fonction JavaScript afin déclencher une action spécifique.
Exemples d'évènements
Voici quelques exemples d'évènements que Javascript est capable de gérer :
Nom de l'évènement | Description |
---|---|
click |
Déclenché lorsque l'utilisateur clique gauche sur un élément de la page |
mouseover |
Déclenché lorsque l'utilisateur passe le pointeur de sa souris au-dessus d'un élément |
mouseout |
Déclenché lorsque le pointeur de la souris est déplacé hors d'un élément |
mousemove |
Déclenché lorsque le pointeur de la souris se déplace alors qu'elle est au-dessus d'un élément |
mouseup |
Déclenché lorsque l'utilisateur relâche le clic de la souris au-dessus d'un élément |
keypress |
Déclenché lorsqu'une touche produisant une valeur de caractère est enfoncée. Des exemples de touches produisant une valeur de caractère sont les touches alphabétiques, numériques et de ponctuation |
Exemple concret
Analysons l'exemple de JavaScript suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
1 2 3 4 5 6 7 8 |
|
JavaScript, comme la majorité des langages de programmation, permet de :
-
associer des valeurs à des variables :
Ligne n°6 : La variable
specialite
est associé au nom saisi par l'utilisateur. -
réaliser des "opérations" :
Ligne n°7 : La chaîne de caractères saisie est concaténée afin d'afficher le texte souhaité dans l'élément paragraphe
p
. -
autorise la définition de fonctions :
Lignes n°4 à 8 : La fonction
mise_a_jour_paragraphe()
, qui correspond à un ensemble d'instructions, est définie pour être appelée au moment "opportun". -
permet l'appel de fonctions en réponse à des évènements issus de l'interaction de l'utilisateur avec la page web :
Lignes n°2 : La fonction
mise_a_jour_paragraphe()
est appelée lors de l'évènement "clic gauche" (click
) sur l'élément paragraphe afin de mettre à jour ce dernier. -
permet d'interagir avec la page web grâce aux interfaces de programmation applicatives (API en anglais) :
JavaScript interagit ici avec l'API du navigateur web DOM (Document Object Model) afin de pouvoir "manipuler" (créer, modifier, appliquer un nouveau style ...) les codes HTML et CSS.
Ici, la ligne 1, permet l'interaction avec l'élément
p
en vue de la modification de son contenu (voir la fonctionmise_a_jour_paragraphe()
).
Autre Exemple concret
Code HTML :
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Survol</title>
<link href="style.css" rel="stylesheet" type="text/css"/>
<script src="code.js" defer></script>
</head>
<body>
<p id="p_survol">Survolez-moi avec le pointeur de votre souris !</p>
</body>
</html>
Code CSS :
html{
width: 80%;
margin: 0 auto;
}
p{
font-size: 1rem;
font-family: sans-serif;
color: black;
background-color: orange;
text-align: center;
height:50px;
line-height: 50px;
border-radius: 0px;
}
Code Javascript :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Application
Exercice 17
Saisir et tester les codes précédents.
Indiquer précisément ce que permet le code JavaScript.
Indiquer ce qu'il se passe après l'évènement mouseover
.
Proposer une modification du code Javascript afin que les propriétés de style du paragraphe reviennent à leurs états d'origine lorsque que la souris ne survol plus le paragraphe (pour cela ajouter une gestion de l'évènement mouseout
).
Exercice 18
Soit le code ci-dessous. La page associée comporte deux boutons.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
Tester le programme précédent. Expliquer ce qu'il se passe.
Proposer une solution.
Compléter le code Javascript avec les fonctions suivantes :
1 2 3 4 5 6 7 8 |
|
Tester le programme. Expliquer ce qu'il se passe.
Modifier les fonctions afin de changer aussi le contenu du paragraphe lorsque l’on clique sur les boutons.