Chcę móc nawigować po wszystkich elementach, które można aktywować na mojej stronie za pomocą klawisza strzałki. Więc gdy naciśnięty zostanie klawisz "w dół", fokus powinien przejść do elementu, który można ustawić, pod bieżącym, skupionym elementem. Masz pomysł na inne klawisze strzałek, gdy nie ma elementu, na który można przesunąć fokus, fokus powinien pozostać taki sam.Shift Focus za pomocą klawiszy strzałek w JavaScript
To, co mam do tej pory:
$(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
});
pomysł polegał na tym, aby uzyskać wszystkie możliwe do ustawienia elementy, a następnie wybrać taki, który pasuje do strzałki i fokusa shift.
Nie mogę uruchomić tego kodu (zawiera błąd) i nie jestem całkowicie pewien, że zadziała.
thnx z góry
[EDIT]: Chyba był trochę niejasne. Nie chcę tylko iść w lewo i w prawo, ale także w górę iw dół.
Więc chcesz łamać to, co zwykle robią klawisze strzałek (przewijaj stronę w różnych kierunkach) tylko na twojej stronie, mimo że inne klawisze (zakładka i zakładka zmiany) już wykonują zadanie? Z punktu widzenia użytkowników mam nadzieję, że tworzysz arkusz kalkulacyjny, ponieważ nie widzę, żeby był to dobry pomysł w innym momencie. – Blazemonger
Myślę, że mniejszym złem byłoby użycie lewego i prawego klawisza zamiast strzałki w górę i w dół. Imgur dobrze sobie z tym radzi. – pixelbobby
@Blazemonger Nie jestem pewien, co OP chce, ale Tab i Shift-Tab nie idą w kierunkach góra-dół-prawo-lewo, ale w sposób liniowy ... – jadkik94