Зависит от Операционки и настроек клавиатуры. keydown сначала генерируется при нажатии, и затем, после задержки генерируется беспрерывно пока не отпустишь клавишу.
Если не устраивает, используй другую логику: Слушай первое событие keydown, в нем делай первое перемещение, запускай таймер, по которому будут делаться остальные перемещения, остальные события keydown игнорируй (либо через флаг, либо через removeEventListener). По keyup останавливаешь таймер и восстанавливаешь обработчик keydown (или очищаешь флаг).
__________________
В личку только с интересными предложениями
|