Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Совершение действия при удерживании клавиши (https://javascript.ru/forum/misc/18316-sovershenie-dejjstviya-pri-uderzhivanii-klavishi.html)

BorodinKO 26.06.2011 00:07

Совершение действия при удерживании клавиши
 
Пишу приложение на js где можно перемещать объект по сцене при помощи клавиш left(37) right(39):

document.body.onkeydown = function(){
	if(event.keyCode==37){x-=20;}
	if(event.keyCode==39){x+=20;}
}


Но разные браузеры как всегда думают по разному и opera не понимает что при удерживании клавиши нужно повторять функцию, а остальные браузеры сразу при нажатии выполняют действия а после примерно через 0.5сек повторяют функцию циклом.

Как сделать ток чтобы при удерживании клавиши сразу выполнялось повторение функции, и работало на всех браузерах идентично?

DreamTheater 26.06.2011 00:40

В Opera не существует события onkeydown, вместо него используйте onkeypress.

Source: http://www.w3schools.com/jsref/dom_obj_event.asp

BorodinKO 26.06.2011 00:56

при этом onkeypress работает только в opera.

Как написать кроссбраузерный код?

DreamTheater 26.06.2011 00:59

http://www.quirksmode.org/js/detect.html


Часовой пояс GMT +3, время: 01:14.