Элемент: событие auxclick
Событие auxclick срабатывает в Element, когда кнопка неглавного указателя (любая кнопка мыши, кроме главной — обычно левая) нажата и отпущена в рамках одного и того же элемента.
auxclick срабатывает после событий mousedown и mouseup в указанном порядке.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или установите свойство обработчика события.
addEventListener("auxclick", (event) => {});
onauxclick = (event) => {};
Тип события
Тип PointerEvent. Наследует от MouseEvent.
Примечание: В ранних версиях спецификации тип события для этого события был MouseEvent. См. совместимость с браузерами для получения дополнительной информации.
Свойства события
Этот интерфейс наследует свойства от MouseEvent и Event.
-
PointerEvent.altitudeAngleТолько для чтения Экспериментальная -
Представляет угол между осью датчика (указателя или стилуса) и плоскостью X-Y экрана устройства.
-
PointerEvent.azimuthAngleТолько для чтения Экспериментальная -
Представляет угол между плоскостью Y-Z и плоскостью, содержащей ось датчика (указателя или стилуса) и ось Y.
-
PointerEvent.pointerIdТолько для чтения -
Уникальный идентификатор указателя, вызвавшего событие.
-
PointerEvent.widthТолько для чтения -
Ширина (величина по оси X) в пикселях CSS геометрии контакта указателя.
-
PointerEvent.heightТолько для чтения -
Высота (величина по оси Y) в пикселях CSS геометрии контакта указателя.
-
PointerEvent.pressureТолько для чтения -
Нормализованное давление ввода указателя в диапазоне
0до1, где0и1представляют минимальное и максимальное давление, которое может обнаружить оборудование, соответственно. -
PointerEvent.tangentialPressureТолько для чтения -
Нормализованное касательное давление ввода указателя (также известное как боковое давление или напряжение цилиндра) в диапазоне
-1до1, где0— нейтральное положение управления. -
PointerEvent.tiltXТолько для чтения -
Угол плоскости (в градусах, в диапазоне от
-90до90) между плоскостью Y-Z и плоскостью, содержащей ось указателя (например, пера-стилуса) и ось Y. -
PointerEvent.tiltYТолько для чтения -
Угол плоскости (в градусах, в диапазоне от
-90до90) между плоскостью X-Z и плоскостью, содержащей ось указателя (например, пера-стилуса) и ось X. -
PointerEvent.twistТолько для чтения -
Повороты указателя (например, пера-стилуса) по часовой стрелке вокруг его главной оси в градусах, со значением в диапазоне от
0до359. -
PointerEvent.pointerTypeТолько для чтения -
Указывает тип устройства, вызвавшего событие (мышь, ручка, сенсорный экран и т. д.).
-
PointerEvent.isPrimaryТолько для чтения -
Указывает, представляет ли указатель основной указатель данного типа указателя.
Предотвращение стандартных действий
В подавляющем большинстве браузеров, которые сопоставляют средний клик с открытием ссылки в новой вкладке, включая Firefox, можно отменить это поведение, вызвав preventDefault() внутри обработчика события auxclick.
При прослушивании событий auxclick, исходящих от элементов, которые не поддерживают ввод или навигацию, вы часто захотите явно предотвратить другие стандартные действия, сопоставленные с нажатием средней кнопки мыши. В Windows это обычно автопрокрутка, а в macOS и Linux — обычно вставка из буфера обмена. Это можно сделать, предотвратив стандартное поведение события mousedown или pointerdown.
Кроме того, вам может потребоваться предотвратить открытие системного контекстного меню после правого клика. Из-за различий во времени работы на разных операционных системах это также не является стандартным действием, которое можно предотвратить в событии auxclick. Вместо этого это можно сделать, предотвратив стандартное поведение события contextmenu.
Примеры
В этом примере мы определяем функции для двух обработчиков событий — onclick и onauxclick. Первый изменяет цвет фона кнопки, а второй — цвет текста кнопки. Вы также можете увидеть две функции в действии, попробовав демонстрацию с многокнопочной мышью (посмотреть в GitHub; также посмотреть исходный код).
JavaScript
let button = document.querySelector("button");
let html = document.querySelector("html");
function random(number) {
return Math.floor(Math.random() * number);
}
function randomColor() {
return `rgb(${random(255)} ${random(255)} ${random(255)})`;
}
button.onclick = () => {
button.style.backgroundColor = randomColor();
};
button.onauxclick = (e) => {
e.preventDefault();
button.style.color = randomColor();
};
button.oncontextmenu = (e) => {
e.preventDefault();
};
Обратите внимание, что помимо захвата события auxclick с помощью onauxclick, также захватывается событие contextmenu и вызывается preventDefault() для этого события, чтобы предотвратить появление контекстного меню после применения изменения цвета.
HTML
<button><h1>Click me!</h1></button>
Примечание: Если вы используете мышь с тремя кнопками, вы заметите, что обработчик onauxclick запускается при нажатии любой кнопки мыши, кроме левой (включая любые «специальные» кнопки на игровых мышах).
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
auxclick_event |
55 | 79 | 53Начиная с Firefox 68, событиеauxclick используется для запуска действия «новая вкладка при среднем клике»; ранее это делалось с помощью события click. Приложения могут предотвратить открытие новой вкладки при среднем клике (или средний клик для вставки, если эта функция включена) путем перехвата события auxclick по ссылкам, а обработчики события auxclick теперь могут открывать всплывающие окна без запуска блокировщика всплывающих окон. |
42 | 18.2 | 55 | 53 | 42 | 18.2 | 6.0 | 55 |
type_pointerevent |
92 | 92 | Нет | 78 | Нет | 92 | Нет | 65 | Нет | 16.0 | 92 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Element/auxclick_event