Deseo navegar a través de todos los elementos enfocables en mi página web con la tecla de flecha. Entonces, cuando se presiona la tecla descendente, el foco debe cambiar al elemento enfocable debajo del elemento enfocado actual. Obtienes la idea para las otras teclas de flecha, cuando no hay un elemento enfocable para cambiar, el foco debe permanecer igual.Enfoque de desplazamiento con las teclas de flecha en JavaScript
Esto es lo que tengo hasta ahora:
$(document).keydown(function(e){
if (e.keyCode == 37) { //left
var offset = $("*:focus").offset();
var allElements = $("#container").find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]');
var arr = jQuery.makeArray(allElements);
var topLeft = offset.left
var minus = topLeft;
var currentElement = $("*:focus");
for(var i = 0; i < arr.length; i++)
{
if ((arr[i].offset().left < offset.left) // This doesn't work for some reason
&& ((offset.left - arr[i].offset().left) < minus))
{
currentElement = arr[i];
minus = offset.left - arr[i].offset().left;
topLeft = arr[i].offset().left;
}
currentElement.focus();
}
alert("left pressed");
return false;
}
// Other Keys
});
la idea era obtener todos los elementos enfocables y seleccionar seleccionar el que sea adecuado para la flecha y el enfoque de desplazamiento.
No consigo que este código funcione (contiene un error) y no estoy completamente seguro de que funcione.
Thnx de antemano
[EDIT]: Creo que estaba un poco vago. No solo quiero ir hacia la izquierda y hacia la derecha, sino también hacia arriba y hacia abajo.
lo tanto, desea para romper lo que las teclas de flecha normalmente hacen (desplazarse por la página en diferentes direcciones) solo en su página, a pesar de que otras teclas (pestaña y pestaña de desplazamiento) ya hacen el trabajo? Por el bien de sus usuarios, espero que esté compilando una hoja de cálculo, porque no puedo ver que esto sea una buena idea en otro momento. – Blazemonger
Creo que el menor de los males sería utilizar la tecla izquierda y derecha en lugar de flecha arriba y flecha abajo. Imgur hace un buen trabajo con esto. – pixelbobby
@Blazemonger No estoy seguro de lo que OP quiere, pero Tab y Shift-Tab no van en direcciones Arriba-Abajo-Derecha-Izquierda, sino de forma lineal ... – jadkik94