我正在尝试在我的网站中实现一些键盘导航(左箭头、右箭头和输入/空格选择)。我猜jQuery
这需要一些!这是我正在寻找的东西的想法(见第一张图片)。我希望能够使用“部分”所在的图像并突出显示当前选择。
有没有一种简单的方法可以做到这一点?
此外,如果有一种简单的方法可以做到这一点,我将如何将其扩展为以下内容:
jQuery 根本不是我的领域。我在网上到处都看过,我发现很难找到一种在我的网站中实现键盘控制的简单方法。任何链接或建议将不胜感激!
提前致谢。
我正在尝试在我的网站中实现一些键盘导航(左箭头、右箭头和输入/空格选择)。我猜jQuery
这需要一些!这是我正在寻找的东西的想法(见第一张图片)。我希望能够使用“部分”所在的图像并突出显示当前选择。
有没有一种简单的方法可以做到这一点?
此外,如果有一种简单的方法可以做到这一点,我将如何将其扩展为以下内容:
jQuery 根本不是我的领域。我在网上到处都看过,我发现很难找到一种在我的网站中实现键盘控制的简单方法。任何链接或建议将不胜感激!
提前致谢。
你可以做到,只需将你想要的代码添加到以下
$(document).keydown(function(e) {
switch(e.which) {
case 37: // left
moveInSectorToLeft();
break;
case 38: // up
nothing(); //Dont know if you want to use it
break;
case 39: // right
moveInSectorToRight();
break;
case 40: // down
selectCurrentSection();
break;
default: return;
}
e.preventDefault();
});
你可以在这个小提琴中查看一个例子:https ://jsfiddle.net/ew8Lnt83/
你可以使用 jQuery 中的keydown事件,我写了一个简单的 fiddle 来帮助你理解如何实现它,希望对你有所帮助:
$(function(){
height = $('#myTable tr').length+1;
width = $('#myTable td').length;
$.each($('#myTable td'), function(key, value){
$(this).attr('id', key);
});
});
$(document).keydown(function(e)
{
switch(e.which) {
case 37: // left
move(1);
break;
case 38: // up
move(2);
break;
case 39: // right
move(3);
break;
case 40: // down
move(4);
break;
default: return; // exit this handler for other keys
}
e.preventDefault(); // prevent the default action (scroll / move caret)
});
function move(direction){
var cur_id = parseInt($('.selected').attr('id'));
switch(direction){
case 1://left
selectTd(cur_id-1);
break;
case 2://up
selectTd(cur_id-height);
break;
case 3://right
selectTd(cur_id+1);
break;
case 4://down
selectTd(cur_id+height);
break;
}
}
function selectTd(id){
if(id > (width-1) || id < 0) return alert("Out of bounds");
$('.selected').removeClass('selected');
$('#'+id).addClass('selected');
}
您可以使用https://github.com/amanboss9/naviboard库检查更强大的键盘导航处理方式。As tab
key 可帮助您在完成页面导航后浏览模式并失去焦点。shift
+tab
有助于反向导航,但您仍然无法根据屏幕上覆盖的元素控制导航。
class
在所需项目上使用navigable。naviBoard.setNavigation(parentID)
使用 parentID 作为所有可导航元素的父元素的 id 来初始化方法。您可以通过下面的 jsfiddle 浏览此演示: https ://jsfiddle.net/amanboss9/unf94tjo/3/embedded/result/