Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

201
Views
Página de desplazamiento de Javascript en una tecla de teclado específica

Cuando sostengo/presiono la tecla 'w' en mi teclado, toda la página debería desplazarse hacia arriba. Cuando presiono la tecla 'd', se desplaza hacia abajo. Excepto cuando estoy en un campo de entrada, porque de lo contrario me desplazaría hacia arriba/abajo cuando quiero ingresar letras W/D.

Este sería el código para desplazarse hacia abajo al presionar W. 87 = W en el teclado (el código no funciona correctamente)

 document.body.onkeyup = function(e) { var code = e.keyCode; if(code === 87) { window.scrollTo(document.body.scrollLeft, document.body.scrollBottom + 500); } };

¿Cómo hago esto? ¿Y hay alguna manera de desplazarse suavemente para que no haga clic en las teclas, puedo sostenerlas?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

code funciona correctamente, para desplazarse solo si la entrada no está enfocada, puede verificar inputElement !== document.activeElement . Para desplazarse suavemente hacia arriba, debe hacer esto.

 document.body.onkeyup = function(e) { const inputElement = document.getElementById('myinput'); var code = e.keyCode; console.log(code); if(code === 87 && (inputElement !== document.activeElement)) { window.scrollTo(0, 0); console.log('scrolling'); } };
 html { scroll-behavior: smooth; }
 <input id='myinput' ></input>

Agregue scroll-behavior: smooth al elemento <html> para permitir un desplazamiento suave en toda la página (nota: también es posible agregarlo a un elemento específico/contenedor de desplazamiento):

about 4 years ago · Juan Pablo Isaza Report

0

He arreglado el código ahora se desplazará a lo largo del eje Y cuando presione W/D

 var scrollY = 0; window.addEventListener("keydown", function(e){ var code = e.keyCode; if(code === 87) { // W scrollY += 20; window.scrollTo(0, scrollY); } if(code === 68) { // D scrollY -= 20; window.scrollTo(0,scrollY); } });
 .container{ background-color:red; height:1000px } .container2{ background-color:blue; height:100vh }
 <div class='container'> test <div> <div class='container2'> test <div>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!