URL: http://github.com/javascript-tutorial/uk.javascript.info/pull/274.patch
ї. Спробуйте також клікнути двічі. -On the teststand below all mouse events are logged, and if there is more than a 1 second delay between them they are separated by a horizontal ruler. +Всі події миші реєструються у тестовому вікні нижче, і якщо між ними є затримка більше 1 секунди, вони розділяються горизонтальною лінією. -Also we can see the `button` property that allows to detect the mouse button, it's explained below. +Також ми можемо побачити властивість `button`, яка дозволяє виявити яку саме кнопку миші клікнули, це пояснюється нижче. ``` -## Mouse button +## Кнопка миші -Click-related events always have the `button` property, which allows to get the exact mouse button. +Події, пов’язані з кліками, завжди мають властивість `button`, що дозволяє отримати точну кнопку миші. -We usually don't use it for `click` and `contextmenu` events, because the former happens only on left-click, and the latter -- only on right-click. +Зазвичай ми не використовуємо її для подій `click` і `contextmenu`, оскільки перше відбувається лише при натисканні лівою кнопкою миші, а останнє -- лише при натисканні правою кнопкою миші. -From the other hand, `mousedown` and `mouseup` handlers may need `event.button`, because these events trigger on any button, so `button` allows to distinguish between "right-mousedown" and "left-mousedown". +З іншого боку, обробникам `mousedown` та `mouseup` може знадобитися `event.button`, тому що ці події запускаються на будь-якій кнопці, тому `button` дозволяє розрізняти "праву кнопку миші" та "ліву кнопку миші". -The possible values of `event.button` are: +Можливі значення `event.button`: -| Button state | `event.button` | +| Стан кнопки | `event.button` | |--------------|----------------| -| Left button (primary) | 0 | -| Middle button (auxiliary) | 1 | -| Right button (secondary) | 2 | -| X1 button (back) | 3 | -| X2 button (forward) | 4 | +| Ліва кнопка (основна) | 0 | +| Середня кнопка (допоміжна) | 1 | +| Права кнопка (другорядна) | 2 | +| Кнопка X1 (назад) | 3 | +| Кнопка X2 (вперед) | 4 | -Most mouse devices only have the left and right buttons, so possible values are `0` or `2`. Touch devices also generate similar events when one taps on them. +Більшість пристроїв мають лише ліву та праву кнопки, тому можливі значення `0` або `2`. Сенсорні пристрої також генерують подібні події, коли на них натискають. -Also there's `event.buttons` property that has all currently pressed buttons as an integer, one bit per button. In practice this property is very rarely used, you can find details at [MDN](mdn:/api/MouseEvent/buttons) if you ever need it. +Також є властивість `event.buttons`, яка містить усі натиснуті кнопки як ціле число, по одному біту на кнопку. На практиці ця властивість використовується дуже рідко, деталі можна знайти на сторінці [MDN](mdn:/api/MouseEvent/buttons), якщо вона вам колись знадобиться. -```warn header="The outdated `event.which`" -Old code may use `event.which` property that's an old non-standard way of getting a button, with possible values: +```warn header="Застаріла властивість `event.which`" +Старий код може використовувати властивість `event.which`, що є старим нестандартним способом отримання кнопки з можливими значеннями: -- `event.which == 1` – left button, -- `event.which == 2` – middle button, -- `event.which == 3` – right button. +- `event.which == 1` – ліва кнопка, +- `event.which == 2` – середня кнопка, +- `event.which == 3` – права кнопка. -As of now, `event.which` is deprecated, we shouldn't use it. +На даний момент властивість `event.which` застала, ми не повинні її використовувати. ``` -## Modifiers: shift, alt, ctrl and meta +## Модифікатори: shift, alt, ctrl і meta -All mouse events include the information about pressed modifier keys. +Усі події миші містять інформацію про натиснуті клавіші-модифікатори. -Event properties: +Властивості події: - `shiftKey`: `key:Shift` -- `altKey`: `key:Alt` (or `key:Opt` for Mac) +- `altKey`: `key:Alt` (чи `key:Opt` для Mac) - `ctrlKey`: `key:Ctrl` -- `metaKey`: `key:Cmd` for Mac +- `metaKey`: `key:Cmd` для Mac -They are `true` if the corresponding key was pressed during the event. +Вони мають значення'true', якщо відповідна клавіша була натиснута під час події. -For instance, the button below only works on `key:Alt+Shift`+click: +Наприклад, кнопка нижче працює лише на `key:Alt+Shift» + клік: ```html autorun height=60 - + ``` -```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`, corresponding to the property `metaKey`. +```warn header="Увага: на Mac зазвичай `Cmd` замість `Ctrl`" +На Windows і Linux є клавіші-модифікатори `key:Alt`, `key:Shift` і `key:Ctrl`. На Mac є ще одна: `key:Cmd`, що відповідає властивості `metaKey`. -In most applications, when Windows/Linux uses `key:Ctrl`, on Mac `key:Cmd` is used. +У більшості застосунків, коли Windows/Linux використовує `key:Ctrl`, на Mac використовується `key:Command`. -That is: 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. +Тобто: коли користувач Windows натискає `key:Ctrl+Enter` або `key:Ctrl+A`, користувач Mac натискає `key:Cmd+Enter` або `key:Cmd+A`, і так далі. -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. +Отже, якщо ми хочемо підтримувати такі комбінації, як `key:Ctrl`+ клік, то для Mac має сенс використовувати `key:Cmd`+ клік. Це зручніше для користувачів 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 MacOS, and it generates the `contextmenu` event, not `click` like Windows/Linux. +Навіть якщо ми б хотіли змусити користувачів Mac застосувати `key:Ctrl`+ клік -- це трохи складно. Проблема полягає в тому, що клік лівою кнопкою миші за допомогою `key:Ctrl` інтерпретується як *клік правою кнопкою миші* у MacOS, і він генерує подію `contextmenu`, а не `click`, як Windows/Linux. -So if we want users of all operating systems to feel comfortable, then together with `ctrlKey` we should check `metaKey`. +Тож якщо ми хочемо, щоб користувачі всіх операційних систем відчували себе комфортно, то разом із `ctrlKey` ми повинні перевірити `metaKey`. -For JS-code it means that we should check `if (event.ctrlKey || event.metaKey)`. +Для JS-коду це означає, що ми повинні перевірити `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 uses a keyboard -- they work. +```warn header="Є також мобільні пристрої" +Комбінації клавіатури хороші як доповнення до робочого процесу. Так що якщо відвідувач використовує клавіатуру - вони працюють. -But if their device doesn't have it -- then there should be a way to live without modifier keys. +Але якщо в їхньому пристрої цього немає - то має бути спосіб жити без клавіш-модифікаторів. ``` -## Coordinates: clientX/Y, pageX/Y +## Координати: clientX/Y, pageX/Y -All mouse events provide coordinates in two flavours: +Усі події миші надають координати у двох варіантах: -1. Window-relative: `clientX` and `clientY`. -2. Document-relative: `pageX` and `pageY`. +1. Відносно Window: `clientX` та `clientY`. +2. Відносно Document: `pageX` та `pageY`. -We already covered the difference between them in the chapterNote: 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: