为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地6264312 2022-10-21 09:42:40
我想做与网站上的向上箭头和向下箭头键相同的滚动事件。下面的代码创建了一个与箭头“相似”的事件,但它在按下键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'    });  }});提前致谢。
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

我假设问题在于它在继续之前“锁定”了一会儿……以下纠正了该问题。


您需要在 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)


查看完整回答
反对 回复 2022-10-21
?
手掌心

TA贡献1942条经验 获得超3个赞

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' });

    }

});


查看完整回答
反对 回复 2022-10-21
  • 2 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信