Книга: Выразительный JavaScript
Кнопки мыши
Кнопки мыши
Нажатие кнопки мыши тоже запускает несколько событий. События "mousedown"
и "mouseup"
похожи на "keydown"
и "keyup"
, и запускаются, когда кнопка нажата и когда отпущена. События происходят у тех узлов DOM, над которыми находился курсор мыши.
После события "mouseup"
на узле, на который пришлись и нажатие, и отпускание кнопки, запускается событие "click"
. Например, если я нажал кнопку над одним параграфом, потом передвинул мышь на другой параграф и отпустил кнопку, событие "click"
случится у элемента, который содержал в себе оба эти параграфа.
Если два щелка происходят достаточно быстро друг за другом, запускается событие "dblclick"
(double-click), сразу после второго запуска "click"
.
Для получения точных координат места, где произошло событие мыши, обратитесь к свойствам pageX
и pageY
– они содержат координаты в пикселях относительно верхнего левого угла.
В примере создана примитивная программа для рисования. Каждый раз по клику на документе он добавляет точку под вашим курсором. В главе 19 будет представлена менее примитивная программа для рисования.
<style>
body {
height: 200px;
background: beige;
}
.dot {
height: 8px; width: 8px;
border-radius: 4px; /* скруглённые углы */
background: blue;
position: absolute;
}
</style>
<script>
addEventListener("click", function(event) {
var dot = document.createElement("div");
dot.className = "dot";
dot.style.left = (event.pageX - 4) + "px";
dot.style.top = (event.pageY - 4) + "px";
document.body.appendChild(dot);
});
</script>
Свойства clientX
и clientY
похожи на pageX
и pageY
, но дают координаты относительно части документа, которая видна сейчас (если документ был прокручен). Это удобно при сравнении координат мыши с координатами, которые возвращает getBoundingClientRect
– его возврат тоже связан с относительными координатами видимой части документа.
- Обработчики событий
- События и узлы DOM
- Объекты событий
- Распространение (propagation)
- Действия по умолчанию
- События от кнопок клавиатуры
- Кнопки мыши
- Движение мыши
- События прокрутки
- События, связанные с фокусом
- Событие загрузки
- График выполнения скрипта
- Установка таймеров
- Устранение помех (debouncing)
- Итог
- Упражнения
- Использование кнопки Автосумма
- Исчезла Панель задач – нет часов, свернутых программ, кнопки Пуск
- Как одним щелчком кнопки мыши закрыть несколько окон одновременно?
- Диски С: и D: невозможно открыть простым щелчком кнопки мыши. Появляется сообщение Не найден файл file.exe. Что делать?
- Перемещение и копирование ячеек с помощью кнопки мыши
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Как выделить строку, столбец и ячейки
- Часы в Windows показывают неправильное время
- 12. Лекция: Создание приложений с графическим интерфейсом пользователя.
- Как продолжить работать с данными, которые я сохранил вчера?
- Что такое Проводник?
- Как вернуть случайно удаленные файлы?