1
resposta

Eventos onmousedown e onmouseup

Os eventos onmousedown e onmouseup, identificam que o botão está pressionado e solto, somente do lado esquerdo ou também do direito?

A proposta do exercicio, era que se andasse com o ponteiro do mouse sobre a tela enquanto o botão esquerdo estive pressionado, deveria desenhar um círculo. Para que no final, tivessemos o efeito parecido com Paint Brush, que permite o usuário desenhar na tela. Ao desenvolver o exercicios proposto, testei os dois botões, e funcionou tanto para o direito e o esquerdo.

1 resposta

Boa noite Vitória, tudo certo?

Essa é uma ótima pergunta! Eu dei uma olhada na documentação da Mozilla e encontrei alguns comportamentos interessantes no funcionamento dos métodos onmouseup e onmousedown e adoraria compartilhar contigo:

Esses eventos contém vários parâmetros quando são acionados, sendo dois de interesse o button e buttons.

O button nos informa qual dos botôes que foi utilizado para acionar aquele evento, atribuindo determinados valores à cada botão. Os resultados que observei no navegador Mozilla Firefox foram:

ParâmetroBotão apertadoCódigo respectivo
buttonBotão esquerdo do mouse0
buttonBotão do meio do mouse1
buttonBotão direito do mouse2
buttonsBotão esquerdo do mouse1
buttonsBotão do meio do mouse2
buttonsBotão direito do mouse4

E pelo que entendi, o parâmetro button é bem antigo e caiu em desuso, mas é mantido por razões históricas e projetos legados. Outro motivo para utilizar o buttons é que se você apertar mais de um botão ao mesmo tempo ele retorna a soma dos valores dos botões que foram pressionados.

Caso queira brincar um pouco, eu fiz um site super simples para ver como funciona o evento onmousedown. Basta copiar esse código e salvar em um arquivo com o final .html e abrir no seu navegador:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Site para testar o evento do onmousedown</title>
<link rel="stylesheet" href="style.css" />

</head>
<body id="home">
<p class="minhaClasse">Me clique e olhe o console!</p>

    <script>
        const content = document.querySelector('.minhaClasse');
        content.onmousedown = function (event) {
                // Retire o comentário abaixo para ver o evento inteiro!
                //console.log(event);
                console.table(event.button, event.buttons);
            }
    </script>

</body>
</html>

Espero ter ajudado e bons estudos!