Eventos de Mouse - JavaScript
Eventos de mouse são alguns dos mais frequentemente utilizados em interações com elementos de interface no desenvolvimento web. Aqui estão alguns dos principais eventos de mouse e suas características:
: Ocorre quando o usuário clica em um elemento.click
: Ocorre com um clique duplo sobre o elemento.dblclick
: Acionado ao abrir o menu de contexto (com o botão direito do mouse).contextmenu
: Disparado quando o botão do mouse é pressionado sobre um elemento.mousedown
: Disparado quando o botão do mouse é solto sobre um elemento.mouseup
: Ocorre quando o cursor do mouse se move sobre o elemento.mousemove
: Acionado quando o cursor entra nos limites de um elemento.mouseover
: Ocorre quando o cursor deixa os limites de um elemento.mouseout
: Semelhante ao mouseover, mas não se propaga (bubble) para elementos pais.mouseenter
: Semelhante aomouseleave
, mas não se propaga para outros elementos.mouseout
Há diferenças importantes entre os eventos mouseover
mouseout
mouseenter
mouseleave
mouseenter
mouseleave
mouseover
mouseout
A seguir, um exemplo prático de como esses eventos podem ser utilizados para mudar a cor de um elemento ao passar o mouse:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Programício</title>
<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";
}
}
const blueRect = document.getElementById("blueRect");
blueRect.addEventListener("mouseover", setColor);
blueRect.addEventListener("mouseout", setColor);
</script>
</body>
</html>
Neste código, o elemento HTML identificado por blueRect
Objeto MouseEvent
O objeto MouseEvent
: RetornaaltKey
se a tecla Alt estiver pressionada durante o evento.true
: Informa o número do botão do mouse que foi pressionado.button
: Mostra uma máscara de bit dos botões pressionados.buttons
,clientX
: Coordenadas do cursor em relação à janela.clientY
,movementX
: Mudança das coordenadas X e Y do cursor desde o último evento de mousemove.movementY
,screenX
: Coordenadas do cursor em relação ao monitor.screenY
: RetornashiftKey
se a tecla Shift estiver pressionada.true
Veja um exemplo de captura de coordenadas do clique:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Programício</title>
<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);
}
const blueRect = document.getElementById("blueRect");
blueRect.addEventListener("click", handleClick);
</script>
</body>
</html>