[英]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.