Temat: Problem jQ, keydown

Mam problem, mam sobie kod który po na ciśnięciu prawej strzałki ma przesunąć ekran w prawo.

$("body").keydown(function(e) {
if(e.keyCode == 39) {
$('html, body').animate({scrollLeft:1903}, 500);
}
});

Tylko ten kod działa tylko na firefox a na chrome czy IE już nie, co jest nie tak ?
Z góry dzięki.

konto usunięte

Temat: Problem jQ, keydown

spróbuj zamiest .keydown() użyć .keyup albo .keypress()

konto usunięte

Temat: Problem jQ, keydown

Piotr L.:
spróbuj zamiest .keydown() użyć .keyup albo .keypress()

onkeypress tutaj nie zadziała. Z tego co wiem to ten event jest odpalany tylko dla klawiszy których znak może być wydrukowany. Więc odpadają strzałki, page up, page down itp.

Problemu doszukiwał bym się w tym że w momencie gdy naciskasz klawisz przy zdarzeniu onkeydown, eventy są wywoływane jeden za drugim co może Ci psuć animację bo próbuje ją powtarzać od nowa. Albo coś w tym stylu.

Sam miałem taki problem animując sprity w grze online na HTML5. Obszedłem to w ten sposób że zapisuję ostatnio wciśnięty klawisz i jak trzymasz przycisk to przerywam event za każdym razem jak klawisz się pokrywa.
onkeyup czyści zapisany ostatnio klawisz.

czyli coś takiego


var lastKeyCode = undefined;

window.onkeydown(function(key){
if(lastKeyCode == key.keyCode) { return false; }
lastkeyCode = key.keyCode;
//tutaj wykonuje co chce wykonać
});

window.onkeyup(function() {
//tutaj zatrzymuje akcje
lastKeyCode = undefined;
});


W tym wypadku tak robię bo postać ma się poruszać tak długo jak klawisz jest wciśnięty.

Żaden ze mnie JavaScript ninja więc może ktoś coś mądrzejszego poradzi. Dla innych klawiszy jak strzałki itp lepiej użyć onkeypress. Ewentualnie poprzez onkeydown jak wspomniał Piotr, zanotuj jaki klawisz został wciśnięty a akcję odpal na onkeyup.Dariusz Półtorak edytował(a) ten post dnia 09.07.12 o godzinie 15:20

Temat: Problem jQ, keydown

Postaram się bardziej obrazowo

http://32m2.pl/cde/

Jak odpalimy pod firefox-em to po naciśnięciu strzałki w duł, przejdziemy z żółtego ekranu na czerwony a jak naciśniemy strzałkę w prawo to przejdziemy do ekranu różowego, a jak naciśniemy strzałkę w lewo wrócimy do ekranu czerwonego.

Jak zrobić żeby hulało pod chorme i może IE ?

konto usunięte

Temat: Problem jQ, keydown

Trzeba było tak od razu. Usuń z body overflow: hidden;. To powoduje problem. Nie ma paska przewijania no to Chrome nie przewija. Albo zamiast tego nie używaj scroll tylko bezpośrednio przesuwaj DIV-y w lewo, prawo itp żeby znalazły się w obszarze roboczym.

Do wyboru do koloru. Dariusz Półtorak edytował(a) ten post dnia 09.07.12 o godzinie 18:18
Krzysztof F.

Krzysztof F. Front-end Developer
@ DocPlanner

Temat: Problem jQ, keydown

Bzdura, bzdura i jeszcze raz bzdura...

@Michał, jedyne co musisz zrobić, żeby Twój kod zaczął działać, to określić szerokość dla body np.:


body {
width: 10000px
}



Wyślij zaproszenie do