javascript - 如何在 jQuery 或 Javascript 中将向上箭头绑定(bind)到 "scroll up"并将向下箭头绑定(bind)到 "scroll down"?

标签 javascript jquery

如何绑定(bind)向上箭头(或任何其他键)来完成与使用 jQuery 或 Javascript 以编程方式向上滚动相同的工作?

我正在使用此代码来检测向上和向下箭头的点击:

$(document).keydown(function(e) {
    switch(e.which) {
        case 38: // up
        console.log("up");

        break;

        case 40: // down
        console.log("down");
        break;

        default: return; // exit this handler for other keys
    }
    e.preventDefault(); // prevent the default action (scroll / move caret)
});

所以当我在这种情况下单击向下箭头时,它应该调用“鼠标向下滚动”。

这样做的原因:我可以通过在移动设备上上下滑动以及鼠标滚动来滚动我网站上的弹出模式中的内容。如果您有笔记本电脑而没有鼠标怎么办?向上/向下箭头不起作用...

最佳答案

我相信箭头键应该已经可以用于滚动(无论如何它在 Stack Overflow 上对我有用!),但如果没有,我相信“scrollTo”方法可以为你工作:

var startingY = 0;

$(document).keydown(function(e) {
    switch(e.which) {
        case 38:
        startingY -= 20;
        window.scrollTo(0, startingY);
        
        break;

        case 40: 
        startingY += 20;
        window.scrollTo(0, startingY);
        
        break;

        default: return;
    }
    e.preventDefault();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="height:5000px"></div>

关于javascript - 如何在 jQuery 或 Javascript 中将向上箭头绑定(bind)到 "scroll up"并将向下箭头绑定(bind)到 "scroll down"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46007649/

相关文章:

javascript - 如何以编程方式仅选择用户可选择的所有文本节点

javascript - 客户端 Web 开发的编程环境

javascript - javascript中的递归函数或循环?

javascript - 高级搜索/队列数组集合问题

jQuery event.preventDefault 的 Javascript native 等效项

jquery - ASP MVC 3 HTTP Post 通过 JQuery 不断返回 500。Url 和 Controller 匹配

javascript - DataTables & X-Editable 使焦点项目可编辑

javascript - 来自 REST API 的 HTTP 请求

jQuery UI Accordion 与滑动条冲突

javascript - 如何更轻松地切换 .click?