keydown 上的滚动事件,如向下箭头和向上箭头

我想做与网站上的向上箭头和向下箭头键相同的滚动事件。下面的代码创建了一个与箭头“相似”的事件,但它在按下键w和时保持锁定s。


document.addEventListener('keydown', e => {

  if (e.keyCode == 87) {

    window.scrollBy({

      top: -30,

      behavior: 'smooth'

    });

  } else if (e.keyCode == 83) {

    window.scrollBy({

      top: 30,

      behavior: 'smooth'

    });

  }

});

提前致谢。


慕的地6264312
浏览 87回答 2
2回答

qq_花开花谢_0

我假设问题在于它在继续之前“锁定”了一会儿……以下纠正了该问题。您需要在 keydown 上设置一个标志并在 keyup 上取消设置然后,您需要让其他东西执行该操作。 var scrollAmount;document.addEventListener('keydown', e => {    if (e.keyCode == 87) {        scrollAmount = -30    }     else if (e.keyCode == 83) {        scrollAmount = 30    }});document.addEventListener('keyup', e => { scrollAmount = 0;});setInterval (function() {     window.scrollBy({ top: scrollAmount});},10)

手掌心

document.addEventListener('keypress', e => {    if (e.keyCode == 119) {               window.scrollBy({ top: -30, behavior: 'smooth' });    }     else if (e.keyCode == 115) {        window.scrollBy({ top: 30, behavior: 'smooth' });    }});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript