diff --git a/2-ui/3-event-details/1-mouse-events-basics/article.md b/2-ui/3-event-details/1-mouse-events-basics/article.md index dce1ad3de..950abfb35 100644 --- a/2-ui/3-event-details/1-mouse-events-basics/article.md +++ b/2-ui/3-event-details/1-mouse-events-basics/article.md @@ -1,89 +1,87 @@ -# Mouse events basics +# Evenements de base de la souris -Mouse events come not only from "mouse manipulators", but are also emulated on touch devices, to make them compatible. +Les évènements de souris ne proviennent pas uniquement des "manipulateurs de la souris", mais ils peuvent aussi être émulés sur des appareils tactiles, afin de les rendre compatibles. -In this chapter we'll get into more details about mouse events and their properties. +Dans ce chapitre nous verrons plus en détail les évènements clics et leurs propriétés. -## Mouse event types +## Les types d'évènements de Souris -We can split mouse events into two categories: "simple" and "complex" +Nous regroupons les évènements de types souris en deux catégories: "Simples" et "Complexes" . -### Simple events +### Les évènements simples -The most used simple events are: +Les évènements simples les plus utilisés sont: `mousedown/mouseup` -: Mouse button is clicked/released over an element. +: Le bouton de la souris est appuyé et relâché sur un élément. `mouseover/mouseout` -: Mouse pointer comes over/out from an element. +: Le pointeur de la souris traverse à l'intérieur ou hors d'un élément. `mousemove` -: Every mouse move over an element triggers that event. +: Chaque déplacement de la souris sur un élément déclenche cet évènement. -...There are several other event types too, we'll cover them later. +...Il existe plusieurs autres types d'évènements aussi, nous allons les couvrir plus tard. -### Complex events +### Les évènements complexes `click` -: Triggers after `mousedown` and then `mouseup` over the same element if the left mouse button was used. +: est déclenché après un évènement `mousedown` et suite à un `mouseup` un sur le même élément si le bouton gauche de la souris a été utilisé `contextmenu` -: Triggers after `mousedown` if the right mouse button was used. +: est déclenché après un évènement `mousedown` si le bouton gauche de la souris a été utilisé. `dblclick` -: Triggers after a double click over an element. +: est déclenché après un évènement double clique sur un élément. -Complex events are made of simple ones, so in theory we could live without them. But they exist, and that's good, because they are convenient. +Les évènements complexes sont faits à partir d’évènements simples, donc en théorie nous pourrions nous en passer. Mais ils existent et cela est une bonne chose parce qu’ils sont convenables. -### Events order +### L’ordre des évènements -An action may trigger multiple events. +Une action peut déclencher plusieurs évènements. -For instance, a click first triggers `mousedown`, when the button is pressed, then `mouseup` and `click` when it's released. +Par exemple, un clic déclenche d'abord un évènement `mousedown`, lorsqu'un bouton est appuyé, ensuite un évènement `mouseup` et un évènement `click` lorsqu’il est relâché. -In cases when a single action initiates multiple events, their order is fixed. That is, the handlers are called in the order `mousedown` -> `mouseup` -> `click`. Events are handled in the same sequence: `onmouseup` finishes before `onclick` runs. +Au cas où une action unique initialise plusieurs évènements, leur ordre est fixé. Cela veut dire, les gestionnaires d’évènements sont appelés selon l’ordre suivant `mousedown` -> `mouseup` -> `click`. Les évènements sont gérés selon la même séquence: `onmouseup` finit avant que `onclick` ne démarre. ```online -Click the button below and you'll see the events. Try double-click too. +Clique sur le bouton en bas et vous verrez les évènements. Essayez l’évènement double clic aussi. Dans TestStand en bas tous les évènements de la souris sont enregistrés, et si il y a plus d’une seconde de retard entre eux, ils sont alors séparés par une ligne horizontale. -On the teststand below all mouse events are logged, and if there are more than 1 second delay between them, then they are separated by a horizontal ruler. - -Also we can see the `which` property that allows to detect the mouse button. +Nous pouvons voir la propriété `which` qui permet de détecter le bouton de la souris.
``` -## Getting the button: which +## Obtenir le bouton: which -Click-related events always have the `which` property, which allows to get the exact mouse button. +Les évènements relatifs à l’événement clic ont toujours la propriété `which`, qui permet d’obtenir le bouton exact de la souris . -It is not used for `click` and `contextmenu` events, because the former happens only on left-click, and the latter -- only on right-click. +Elle n’est pas utilisée pour les évènements `click` et `contextmenu`, parce que le premier se passe uniquement sur le clic gauche et le dernier – uniquement sur le clic droit. -But if we track `mousedown` and `mouseup`, then we need it, because these events trigger on any button, so `which` allows to distinguish between "right-mousedown" and "left-mousedown". +Mais si nous voulons suivre les évènements `mousedown` and `mouseup`, alors nous en avons besoin, parce que ces évènements se déclenchent sur n’importe quel bouton, donc `which`permet de distinguer entre "right-mousedown" et "left-mousedown". -There are the three possible values: +Voici les trois valeurs possibles: - `event.which == 1` -- the left button - `event.which == 2` - the middle button - `event.which == 3` - the right button -The middle button is somewhat exotic right now and is very rarely used. +Le bouton du milieu est quelque peu exotique jusqu’à présent et est très rarement utilisé. -## Modifiers: shift, alt, ctrl and meta +## Les Touches de Modifications: shift, alt, ctrl and meta -All mouse events include the information about pressed modifier keys. +Tous les évènements de la souris contiennent des informations à propos des touches de modifications qui sont appuyées. -The properties are: +Les propriétés sont : - `shiftKey` - `altKey` - `ctrlKey` - `metaKey` (`key:Cmd` for Mac) -For instance, the button below only works on `key:Alt+Shift`+click: +Par exemple le bouton en bas fonctionne seulement avec `key:Alt+Shift`+click: -```html autorun height=60 +```html autorun height=60 ``` +```warn header="Attention: Sur Mac c’est souvent `Cmd` au lieu de `Ctrl`" -```warn header="Attention: on Mac it's usually `Cmd` instead of `Ctrl`" -On Windows and Linux there are modifier keys `key:Alt`, `key:Shift` and `key:Ctrl`. On Mac there's one more: `key:Cmd`, it corresponds to the property `metaKey`. +Sur Windows et Lunix il y a les touches de Modification key:Alt`, `key:Shift` and `key:Ctrl`.Sur Mac il y a une de plus: `key:Cmd`, elle correspond à la propriété `metaKey`. -In most cases when Windows/Linux uses `key:Ctrl`, on Mac people use `key:Cmd`. So where a Windows user presses `key:Ctrl+Enter` or `key:Ctrl+A`, a Mac user would press `key:Cmd+Enter` or `key:Cmd+A`, and so on, most apps use `key:Cmd` instead of `key:Ctrl`. +Dans la plus part des cas lorsque Windows/Linux utilise `key:Ctrl`, les gens sur Mac utilisent `key:Cmd`. Donc là ou un utilisateur Windows appuie sur `key:Ctrl+Enter` ou `key:Ctrl+A`, un utilisateur Mac va appuyer sur `key:Cmd+Enter` oubien sur `key:Cmd+A`, ainsi de suite, la plupart des apps utilisent `key:Cmd` au lieu de `key:Ctrl`. -So if we want to support combinations like `key:Ctrl`+click, then for Mac it makes sense to use `key:Cmd`+click. That's more comfortable for Mac users. +Donc si nous voulons supporter les combinaisons comme `key:Ctrl`+click, alors sur Mac on est sensé utiliser `key:Cmd`+click. C’est plus confortable pour les usagers de Mac. -Even if we'd like to force Mac users to `key:Ctrl`+click -- that's kind of difficult. The problem is: a left-click with `key:Ctrl` is interpreted as a *right-click* on Mac, and it generates the `contextmenu` event, not `click` like Windows/Linux. +Même si nous voudrions forcer les usagers de Mac à utiliser to `key:Ctrl`+click -- cela semble être difficile. Le problème en est : qu’un clic-gauche avec `key:Ctrl` est interprète comme un *right-click* sur Mac, et cela génère l’évènement `contextmenu`, non pas un `click` comme sous Windows/Lunix. -So if we want users of all operational systems to feel comfortable, then together with `ctrlKey` we should use `metaKey`. +Donc si nous voulons que les usagers de tous les systèmes d’Exploitations soient confortables, alors avec `ctrlKey` nous devons utiliser `metaKey`. -For JS-code it means that we should check `if (event.ctrlKey || event.metaKey)`. +Pour JS-code cela signifie que nous devons contrôler si `if (event.ctrlKey || event.metaKey)`. ``` -```warn header="There are also mobile devices" -Keyboard combinations are good as an addition to the workflow. So that if the visitor has a - keyboard -- it works. And if your device doesn't have it -- then there's another way to do the same. +```warn header="Il y a aussi les appareils mobiles" + +Les combinaisons du clavier sont tout aussi bonnes comme ajout au processus de travail. De sorte que si un visiteur a un clavier—cela fonctionne. Et si votre appareil n'en possède pas—qu’il possède un autre moyen d’effectuer la même chose. ``` -## Coordinates: clientX/Y, pageX/Y +## Cordonnées: clientX/Y, pageX/Y -All mouse events have coordinates in two flavours: +Tous les évènements de souris ont des cordonnées en deux types : -1. Window-relative: `clientX` and `clientY`. -2. Document-relative: `pageX` and `pageY`. +1. Window-relative: `clientX` et `clientY`. +2. Document-relative: `pageX` et `pageY`. -For instance, if we have a window of the size 500x500, and the mouse is in the left-upper corner, then `clientX` and `clientY` are `0`. And if the mouse is in the center, then `clientX` and `clientY` are `250`, no matter what place in the document it is. They are similar to `position:fixed`. +Par exemple, si nous avons une fenêtre de taille 500x500, et la souris est au coin gauche en haut, alors `clientX` et `clientY` ont une valeur de `0`. Et si la souris est au centre, alors `clientX` et `clientY` ont une valeur de `250`, quel que soit la position dans le document il se trouve. Et ils ont une position similaire à`position:fixed`. ````online -Move the mouse over the input field to see `clientX/clientY` (it's in the `iframe`, so coordinates are relative to that `iframe`): +Glisse la souris à l’intérieur des champs de saisie texte pour voir les `clientX/clientY` (C’est dans l `iframe`, ainsi les cordonnées sont relatives à cet `iframe`): ```html autorun height=50 ``` ```` +Les cordonnées relatives au document sont comptés à partir du coin gauche en haut du document, et non pas par rapport à la fenêtre. +Les coordonnées `pageX`, `pageY` sont similaires à `position:absolute` au niveau document. +Vous pouvez lire plus à propos des cordonnées dans le chapitreNote: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: