9
respostas

Não funciona ao pressionar Enter não fica iluminado!

Meu código não funciona quando é apertado a tecla ( Enter ) Não fica iluminado! Testei com o material final do curso e também não funcionou. Eu ja testei também NumpadEnter e NumPadEnter e não foi e os navegadores Brave, Google e Edge.

Segue abaixo meu código:

function tocaSom (idElementAudio) { document.querySelector(idElementAudio).play(); }

const listaDeTeclas = document.querySelectorAll('.tecla');

for (let z = 0; z < listaDeTeclas.length; z++) {

const tecla = listaDeTeclas[z];
const instrumento = tecla.classList[1];
const idAudio = `#som_${instrumento}`;

tecla.onclick = function () {
    tocaSom(idAudio);
}

tecla.onekeydown = function (event) {
    if (event.code === 'Enter' || event.code === 'Space') {
        tecla.classList.add('ativa');

        console.log(ativa);
    }

}

tecla.onekeyup = function () {
    tecla.classList.remove('ativa');
}

}

9 respostas

Salve, Saulo.

Consegue compartilhar o CSS eo HTML do seu projeto?

Opa amigo blz?

Segue o HTML >

<title>Bateria MIDI</title>

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600&display=swap" rel="stylesheet">

<link rel="icon" type="image/png" href="images/bateria.png">
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/estilos.css">
<h1>Bateria Midi</h1>

<section class="teclado">
    <button class="tecla tecla_pom">Pom</button>
    <button class="tecla tecla_clap">Clap</button>
    <button class="tecla tecla_tim">Tim</button>

    <button class="tecla tecla_puff">Puff</button>
    <button class="tecla tecla_splash">Splash</button>
    <button class="tecla tecla_toim">Toim</button>

    <button class="tecla tecla_psh">Psh</button>
    <button class="tecla tecla_tic">Tic</button>
    <button class="tecla tecla_tom">Tom</button>
</section>

<audio src="sounds/keyq.wav" id="som_tecla_pom"></audio>
<audio src="sounds/keyw.wav" id="som_tecla_clap"></audio>
<audio src="sounds/keye.wav" id="som_tecla_tim"></audio>
<audio src="sounds/keya.wav" id="som_tecla_puff"></audio>
<audio src="sounds/keys.wav" id="som_tecla_splash"></audio>
<audio src="sounds/keyd.wav" id="som_tecla_toim"></audio>
<audio src="sounds/keyz.wav" id="som_tecla_psh"></audio>
<audio src="sounds/keyx.wav" id="som_tecla_tic"></audio>
<audio src="sounds/keyc.wav" id="som_tecla_tom"></audio>

<script src="main.js"></script>

Segue o CSS >

:root { --cinza: #aaa; --vermelha: #e93d50; --vermelha-escura: #af303f; --branca: #fff; --luz: rgb(229, 255, 0); }

body { align-items: center; background: linear-gradient(45deg, #a7cfdf 0%,#23538a 100%); display: flex; justify-content: center; flex-direction: column; font-family: 'Montserrat', sans-serif; min-height: 100vh; }

h1 { color: var(--branca); margin-bottom: 20px; font-size: 2rem; }

.teclado { background: linear-gradient(to bottom, #eeeeee 0%,#cccccc 100%); box-shadow: 6px 8px 0 6px #666, 10px 10px 10px #000; border-radius: 30px; display: grid; gap: 10px; grid-template-columns: repeat(3, 1fr); padding: 10px; }

.tecla { background-color: var(--branca); border-radius: 30px; box-shadow: 3px 3px 0 var(--cinza); color: var(--vermelha); cursor: pointer; height: 120px; font-size: 1.75em; font-weight: bold; line-height: 120px; text-align: center; width: 120px; }

.tecla.ativa, .tecla:active { background-color: var(--vermelha); border: 4px solid var(--vermelha); box-shadow: 3px 3px 0 var(--vermelha-escura) inset; color: var(--branca); outline: none; }

.tecla.focus, .tecla:focus { outline: none; box-shadow: 1px 1px 10px var(--luz); }

.tecla.active:focus, .tecla:active:focus { box-shadow: 3px 3px 0 var(--vermelha-escura) inset, 1px 1px 10px var(--luz); }

Saulo, fui juntando as suas partes junto com o projeto final do curso e consegui fazer funcionar.

Deixei disponível aqui repositório no github.

Você também pode baixar direto o zip aqui

Marcos, eu baixei aqui e testei e acontece a mesma coisa. Só ao apertar o Enter que não acende.

Qual navegador você esta usando?

Google Chrome: Version 100.0.4896.127 (Official Build) (arm64)

Google Chrome: Versão 101.0.4951.41 (Versão oficial) 64 bits Baixei o Firefox também não foi. Eu estou no Windows.

Olá. caso você esteja apertando o enter do teclado NUMÉRICO você precisa add. o (NumpadEnter) aconteceu comigo, entrei no console e identifiquei o nome da tecla e fiz adição.

segue abaixo

tecla.onkeydown = function(evento){
              if (evento.code === 'space' || evento.code === 'Enter' || evento.code === 'NumpadEnter') {
                tecla.classList.add('ativa');  
          }
      }

Ola amigo.

Ja fiz isso e não resolveu.