Перемещение картинки без задержки
Доброго времени суток, дамы и господа.
Как добиться нормального, плавного перемещения картинки при удержании клавиши без задержки? Проблема такая: жмём клавишу вправо, картинка перемещается (в моём случае на 4 пиксели), застывает на секунду и дальше снова движется без задержек. Код: addEventListener("keydown", function(event) { positionX = parseInt(document.getElementById("mainTankMove").style.left); positionY = parseInt(document.getElementById("mainTankMove").style.top); if (event.keyCode == 39) { if (positionX >= 573) { positionX = 572; } positionX = positionX + 4; document.getElementById("mainTankMove").style.left = positionX; document.getElementById("mainTank").style.transform = "rotate(90deg)"; } }); addEventListener("keyup", function(event) { alert ("qwe"); } З.Ы. прошу прощения за кривоту описания, по другому не умею. |
Зависит от Операционки и настроек клавиатуры. keydown сначала генерируется при нажатии, и затем, после задержки генерируется беспрерывно пока не отпустишь клавишу.
Если не устраивает, используй другую логику: Слушай первое событие keydown, в нем делай первое перемещение, запускай таймер, по которому будут делаться остальные перемещения, остальные события keydown игнорируй (либо через флаг, либо через removeEventListener). По keyup останавливаешь таймер и восстанавливаешь обработчик keydown (или очищаешь флаг). |
Можно разжевать, как для "не очень умных"?
Только начал постигать азы js. Ах да, код в первом моём сообщении не рабочий: addEventListener("keydown", function(event) { positionX = parseInt(document.getElementById("mainTankMove").style.left); positionY = parseInt(document.getElementById("mainTankMove").style.top); if (event.keyCode == 39) { if (positionX >= 573) { positionX = 572; } positionX = positionX + 4; document.getElementById("mainTankMove").style.left = positionX; document.getElementById("mainTank").style.transform = "rotate(90deg)"; } } |
KoliK29, что именно не ясно? Задавай конкретные вопросы. И зачем ты постишь опять тот же самый код? Проблемы с памятью?
|
Часовой пояс GMT +3, время: 10:28. |