No meu projeto do AluraFone, o botão fica amarelo quando usarmos espaço ou enter, mas quando clicamos no número não estava ficando, por isso fiz algumas modificações (incluir uma classe nos botões e inclui a classe e a propriedade active no arquivo index.html como observei no projeto do aluramidi.
Agora quando clico no espaço ou enter o botão fica amarelo, mas quando clico com o mouse ele fica verde e depois amarelo, o que preciso corrigir?
Outra pergunta: existe uma forma mais simples de fazer comparação de vários valores?
index.html
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="stylesheet" href="style.css">
<title>Alura fone</title>
</head>
<body>
<h1> Alura Fone </h1>
<section class="teclado">
<input class="botaonum" type="button" value="1">
<input class="botaonum"type="button" value="2">
<input class="botaonum"type="button" value="3">
<input class="botaonum"type="button" value="4">
<input class="botaonum"type="button" value="5">
<input class="botaonum"type="button" value="6">
<input class="botaonum"type="button" value="7">
<input class="botaonum"type="button" value="8">
<input class="botaonum"type="button" value="9">
<input class="botaonum"type="button" value="*">
<input class="botaonum"type="button" value="0">
<input class="botaonum"type="button" value="#">
</section>
<input type="tel" placeholder="Digite seu telefone">
<script src="main.js"></script>
</body>
</html>
style.css
* {
box-sizing: border-box;
}
body {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
background-color: #191919;
min-height: 100vh;
}
input {
border: none;
color: inherit;
font-size: inherit;
font-weight: inherit;
font-family: inherit;
}
h1 {
font-family: 'Montserrat', sans-serif;
font-size: 24px;
color: #fff;
}
.teclado {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
background-color: #cccccc;
border-radius: 30px;
padding: 10px;
}
input[type=button] {
border-radius: 20px;
cursor: pointer;
font-family: 'Montserrat', sans-serif;
height: 80px;
width: 80px;
}
input[type=tel] {
background-color: #cccccc;
border-radius: 10px;
font-family: monospace;
font-size: 22px;
height: 40px;
margin-bottom: 24px;
padding: 10px;
text-align: center;
width: 280px;
}
.ativa,
.botaonum:active {
background-color: yellow;
}
main.js
const listaDeTeclas = document.querySelectorAll('input[type=button]');
const inputTel = document.querySelector('input[type=tel]');
for (let i=0; i < listaDeTeclas.length; i++){
const tecla = listaDeTeclas[i];
tecla.onclick = function () {
inputTel.value += tecla.value;
}
tecla.onkeydown = function (evento) {
if(evento.code === "Enter" || evento.code === "Space") {
tecla.classList.add('ativa');
}
if(evento.key === "0" || evento.key === "1" || evento.key === "2" || evento.key === "3"
|| evento.key === "4"|| evento.key === "5"|| evento.key === "6"|| evento.key === "7"
|| evento.key === "8"|| evento.key === "9"|| evento.key === "*"|| evento.key === "#")
{
inputTel.value +=evento.key;
}
}
tecla.onkeyup = function () {
tecla.classList.remove('ativa');
}
}