jquery - 当用户按下键盘上的左/右键时继续滚动

标签 jquery jquery-ui

我已经成功添加了按下键盘上的左/右键时滚动(左/右)的功能

$('body').keydown(function (e) {
    if (e.keyCode == 37) { // left
        $('html, body').stop().animate({
        scrollLeft: "-=980"
        }, 1000);
        e.preventDefault();
    }
    else if (e.keyCode == 39) { // right
        $('html, body').stop().animate({
        scrollLeft: "+=980"
        }, 1000);
        e.preventDefault();
    }
});

当用户只按左/右键一次时,效果非常好。当用户长按左/右键时,滚动效果会停止然后再次启动(只要按下该键)。

当用户长时间按向左/向右时,我希望滚动不会再次停止/开始。而是继续滚动,直到释放向左/向右按钮。

可能吗?

谢谢。

最佳答案

是的,我认为这是可能的。 尝试在onKeyDown事件中使用

setInterval()

每 200 毫秒左右调用一次滚动函数。

然后使用onKeyUp事件来停止该函数(使用标志或使用clearInterval())

祝你好运

关于jquery - 当用户按下键盘上的左/右键时继续滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14099341/

相关文章:

jquery - 如何限制 droppable 仅包含完整的可拖动

JQuery UI 组合框禁用

javascript - Bootstrap DateTimePicker 和 jQuery 问题

javascript - 像 Airbnb 一样,切换从顶部出现(下推)的 div 后,将滚动条设置为零(一次)

php - 我可以从 js 刷新 Yii CGridView 吗?

javascript - div 的流体间距

jquery-ui - 模态 ui 对话框内的 jquery UI 自动完成 - 建议未显示?

jquery - 使用 jquery 将 id 添加到 li a

jquery - 如何使用 jQuery Validation Engine 和 Twitter Bootstrap modals 修复定位错误

jquery-ui - 在 jQuery UI 1.10 中的对话框标题中使用 HTML