Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

145
Visualizações
JS - ¿Por qué no se reconoce el segundo valor en mi ecuación "o"?

Estoy tratando de crear una función que mueva una imagen png hacia arriba, hacia abajo, hacia la izquierda o hacia la derecha presionando WASD o las teclas de flecha. Por el momento, he descubierto una forma de mover el elemento usando WASD; sin embargo, cuando introduzco el operando "o" y uso el código Key.Code para las teclas de flecha, las teclas de flecha no se reconocen aunque aún reconocerá WASD

 <body> <div class="scene"> <div class="rocket"> <img src="rocket.png" alt="" /> </div> </div> <script src="script.js"></script>
 document.addEventListener("keydown", (e) => { var rocket = document.querySelector(".rocket"); let speed = 10; if (event.keyCode == (87 || 38) && rocket.offsetTop > 100) { rocket.style.top = `${rocket.offsetTop - speed}px`; } if (event.key == "s" && rocket.offsetTop < window.innerHeight - 300) { rocket.style.top = `${rocket.offsetTop + speed}px`; } if (event.key == "a" && rocket.offsetLeft > 50) { rocket.style.left = `${rocket.offsetLeft - speed}px`; } if (event.key == "d" && rocket.offsetLeft < window.innerWidth - 125) { rocket.style.left = `${rocket.offsetLeft + speed}px`; } if (event.key == " " && rocket.offsetTop > 100) { rocket.style.top = `${rocket.offsetTop - 200}px`; } console.log(event.keyCode); });
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Esta expresión:

 87 || 38

Evalúa a 87 . Cada vez. Lo que significa esta expresión:

 event.keyCode == (87 || 38)

Compara el valor con 87 . Cada vez.

No piense en estas condiciones lógicas como lenguaje humano intuitivo. Deben construirse como expresiones lógicas individuales que evalúan individualmente a un valor. Lo que buscas es esto:

 (event.keyCode == 87 || event.keyCode == 38)
about 4 years ago · Juan Pablo Isaza Relatório

0

Deberías intentarlo

 if ((event.keyCode == 87 || event.keyCode == 38) && rocket.offsetTop > 100)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda