我已在此处阅读此答案Guide for writing arrowkey navigation on focusable elements?但对于像我这样的新手来说,它还不够详细。
我需要这样的东西,我的 DOM 中有一个带有 div 的 4x4 网格。我希望能够在选择器周围移动,然后能够通过 enter 选择焦点 div。
编辑:粘贴一些代码,
当我意识到自己完全走错了路时,这就是我正在尝试的:
function arrowKeys(input){
var keyCode = input.keyCode;
var border = document.getElementById(keyid);
var removeBorder = border.removeAttribute("style");
if(keyCode == 38 || keyCode == 39 || keyCode == 40 || keyCode == 37){
var addborder = border.setAttribute("style", "border:2px solid red");
border.addborder;
if(keyCode == 38){
removeBorder;
keyid = keyid - 4;
border.addborder;
console.log(keyid + " upp");
}
if (keyCode == 39){
removeBorder;
keyid++;
border.addborder;
console.log(keyid + " right");
}
if(keyCode == 40){ // right arrowkey
removeBorder;
keyid = keyid + 4;
border.addborder;
console.log(keyid + " down");
}
if (keyCode == 37){ // left arrowkey
removeBorder;
keyid--;
border.addborder;
console.log(keyid + " left");
}
}
}
我想你需要在这样的行上使用一个数组,
var navigationMap = [[1,2,3,4][5,6,7,8][9,10,11,12][13,14,15,16]];
但是我一直卡在那里..