[英]jQuery Move div with arrow keys
我正在尝试使用箭头键移动div。 我有以下代码对我不起作用。 你觉得它有什么问题吗? 在http://jsfiddle.net/N5Ltt/1/查看jsfiddle
$(document).keydown(function(e) {
switch (e.which) {
case 37:
$('div').stop().animate({
left: '-= 10'
}); //left arrow key
break;
case 38:
$('div').stop().animate({
top: '-= 10'
}); //up arrow key
break;
case 39:
$('div').stop().animate({
left: '+= 10'
}); //right arrow key
break;
case 40:
$('div').stop().animate({
top: '+= 10'
}); //bottom arrow key
break;
}
})
您需要做两件事:
<div>
需要position: absolute
或您的top
和left
属性不会执行任何操作。 '-= 10'
是什么意思,但它确实理解'-=10'
。 您可能希望一直到'-=10px'
因为这更常见,但px
不是必需的。 更新小提琴: http : //jsfiddle.net/ambiguous/N5Ltt/2/
您按住箭头键时会看到动画停止,因为您在每个keydown上调用.stop
并停止动画。 动画使用计时器和.stop
停止计时器; 如果键盘的重复速率比计时器的第一次迭代快,则按住箭头键时不会发生动画。 你一次只能移动10px所以你可以使用.css
进行10px的直接非动画移动:
$div.css('left', $div.offset().left - 10);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.