События мыши
Одно из наиболее часто используемых событий составляют события мыши:
click()
возникает при нажатии указателем мыши на элементdblclick()
двойной клик по элементуmousedown()
возникает при нахождении указателя мыши на элементе, когда кнопка мыши находится в нажатом состоянииmouseup
возникает при нахождении указателя мыши на элементе во время отпускания кнопки мышиmouseover()
возникает при вхождении указателя мыши в границы элементаmousemove
возникает при прохождении указателя мыши над элементомmouseout()
возникает, когда указатель мыши выходит за пределы элементаcontextmenu()
срабатывает при нажатии правой кнопки мышиmousemove()
указатель мыши движется внутри области отображения элементаmouseenter()
срабатывает, когда указатель мыши заходит на элементmouseleave()
срабатывает, когда указатель мыши выходит из элементаmouseup()
срабатывает, когда отжимается кнопка мыши
Например, обработаем события mouseover
и mouseout
:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style>
#blueRect{
width:100px;
height:100px;
background-color:blue;
}
</style>
</head>
<body>
<div id="blueRect"></div>
<script>
function setColor(e){
if(e.type==="mouseover")
e.target.style.backgroundColor = "red";
else if(e.type==="mouseout")
e.target.style.backgroundColor = "blue";
}
var blueRect = document.getElementById("blueRect");
blueRect.addEventListener("mouseover", setColor);
blueRect.addEventListener("mouseout", setColor);
</script>
</body>
</html>
Теперь при наведении указателя мыши на блок blueRect
он будет окрашиваться в красный цвет, а при уходе указателя мыши - блок будет обратно окрашиваться в синий цвет.
Объект Event
является общим для всех событий. Однако для разных типов событий существуют также свои объекты событий, которые добавляют ряд своих свойств. Так, для работы с событиями указателя мыши определен объект MouseEvent
, который добавляет следующие свойства:
altKey
возвращаетtrue
, если была нажата клавишаAlt
во время генерации событияbutton
указывает, какая кнопка мыши была нажатаclientX
определяет координатуХ
окна браузера, на которой находился указатель мыши во время генерации событияclientY
определяет координатуY
окна браузера, на которой находился указатель мыши во время генерации событияctrlKey
возвращаетtrue
, если была нажата клавишаCtrl
во время генерации событияmetaKey
возвращаетtrue
, если была нажата во время генерации события метаклавиша клавиатурыrelatedTarget
определяет вторичный источник возникновения событияscreenX
определяет координатуХ
относительно верхнего левого угла экрана монитора, на которой находился указатель мыши во время генерации событияscreenY
определяет координатуY
относительно верхнего левого угла экрана монитора, на которой находился указатель мыши во время генерации событияshiftKey
возвращаетtrue
, если была нажата клавишаShift
во время генерации события
Определим координаты клика:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style>
#blueRect{
width:100px;
height:100px;
background-color:blue;
}
</style>
</head>
<body>
<div id="blueRect"></div>
<script>
function handleClick(e){
console.log("screenX: " + e.screenX);
console.log("screenY: " + e.screenY);
console.log("clientX: " + e.clientX);
console.log("clientY: " + e.clientY);
}
var blueRect = document.getElementById("blueRect");
blueRect.addEventListener("click", handleClick);
</script>
</body>
</html>