Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用键盘键作为导航_Javascript_Jquery_Keyboard - Fatal编程技术网

Javascript 使用键盘键作为导航

Javascript 使用键盘键作为导航,javascript,jquery,keyboard,Javascript,Jquery,Keyboard,我正在写一个博客主题&我想要键盘导航。我知道这和键盘键的id有关,但我已经找了3个小时了,我想还是没有找到一个简单的解决方案。这是我想按的键&我想让它们做什么 J-向下滚动到下一篇文章 K-向上滚动到上一篇文章 R-打开一个带有该帖子重新登录URL的新选项卡 P-打开一个带有该帖子永久链接URL的新选项卡 如果有人能在这方面帮助我,那将是非常有帮助的。另外,我知道你可以通过在URL中设置链接来做一些事情,比如,但我不知道当按下R&P键并将该数据作为URL时,如何让浏览器打开一个新选项卡。另外

我正在写一个博客主题&我想要键盘导航。我知道这和键盘键的id有关,但我已经找了3个小时了,我想还是没有找到一个简单的解决方案。这是我想按的键&我想让它们做什么

  • J-向下滚动到下一篇文章
  • K-向上滚动到上一篇文章
  • R-打开一个带有该帖子重新登录URL的新选项卡
  • P-打开一个带有该帖子永久链接URL的新选项卡
如果有人能在这方面帮助我,那将是非常有帮助的。另外,我知道你可以通过在URL中设置链接来做一些事情,比如
,但我不知道当按下R&P键并将该数据作为URL时,如何让浏览器打开一个新选项卡。另外,J&K,我希望浏览器能够平滑地滚动到文章的顶部,包括文章的页边顶部


如果有人能帮我完成全部代码,我将不胜感激。我知道这是一个很大的问题,我可能会对此表示不满,但正如我所说,我已经尝试了一个多小时,我只需要专家的帮助。

超过一个小时并不算多。但这里有一些东西可以让你开始:

通过检查事件对象上的
哪个
,可以可靠地检查按下了哪个键。我做了一个演示,这样你就可以看到如何检查按下了哪个键

演示:


明白了:事件只在有焦点的元素上触发,因此您最好将其绑定到
body
document
进行导航。

用于按键事件。它允许您在按键时执行js。js将收到一个事件
event
,它将告诉您按下了什么键。根据按键的不同,您将
做一些事情
否则
什么都不做

这样的事情会给您一个好的开始。如果您不能使用任何库,那么您可以使用

<script>

var keyMap = [];
keyMap["j"] = 106;
keyMap["k"] = 107;
keyMap["r"] = 114;
keyMap["p"] = 112;

window.onkeypress = function (event) {
 var asciiVal = (event.which) ? event.which : event.keyCode;
 //Write a switch here to individually handle input.
}

var-keyMap=[];
keyMap[“j”]=106;
keyMap[“k”]=107;
keyMap[“r”]=114;
keyMap[“p”]=112;
window.onkeypress=功能(事件){
var ascival=(event.which)?event.which:event.keyCode;
//在这里写一个开关来单独处理输入。
}

这有助于查找键码,但我仍然需要滚动到帖子的帮助,还需要打开新选项卡。我需要一个巨大的答案和巨大的代码@ahren要滚动到帖子,请使用scrollTo(yPosOfElement('someid'))进行检查;并编写自己的yPosOfElement(id)函数来获取element@JamesCharless-如果我要为你写整件事,那将挫败它的全部目的(目的是你学习)。您可以合并在其他地方找到的信息,或者将问题分解为更小的部分。这里有一些可以帮助你的资源:恨你想要的一切,这个网站对于学习很多东西的人来说是一个难以置信的资源languages@Tats_innit从网站:
我们认为W3SCHOOLS对网络有害。WEB开发人员应该得到更好的服务。
,请继续阅读;)@里根我不讨厌,我认为你应该得到更好的:),但无论如何这都是你的决定:)@SiGanteng明白了,但我不是在使用这个资源,只是为了快速查找而推荐它。仅仅因为它的名字是W3并不意味着什么,但是你不能否认它是一个很好的资源,可以快速找到关于html/js/css的信息etc@reagan-W3傻瓜网站没有抱怨名字是W3,它抱怨提供给开发人员的信息过时和不正确——这绝对不利于学习。我会使用jQuery库。