Вам нужно сделать две вещи:
- Ваши
<div>
потребности position: absolute
или ваши свойства top
и left
ничего не сделают. - jQuery не знает, что означает
'-= 10'
, но понимает '-=10'
.Возможно, вы захотите пройти весь путь до '-=10px'
, поскольку это более распространено, но px
не требуется.
Обновленная скрипка: http://jsfiddle.net/ambiguous/N5Ltt/2/
Вывидеть, как анимация останавливается, когда вы удерживаете клавишу со стрелкой, потому что вы вызываете .stop
при каждом нажатии клавиши, и это останавливает анимацию.Анимация работает с использованием таймера и .stop
останавливает таймер;если частота повторения клавиатуры выше, чем первая итерация таймера, анимация не происходит, если вы удерживаете клавишу со стрелкой.Вы перемещаетесь только на 10 пикселей за раз, поэтому вы можете просто сделать прямое движение без анимации на 10 пикселей, используя .css
:
$div.css('left', $div.offset().left - 10);
Неанимированная версия: http://jsfiddle.net/ambiguous/N5Ltt/3/