我再次访问您丰富的知识:P
我正在使用 jQuery 开发一个小而简单的游戏(只是作为 jQuery 的练习)。我正在尝试阻止一个错误,该错误似乎会使第一步 Action 卡顿。要复制此操作,只需按住一个方向即可。它断断续续地移动一次,然后平滑地移动。
我使用的代码是:
$(document).keydown(function(e) {
switch (e.which) {
case 37:
$('#move').animate({
left: '-=2'
},1); //left arrow key
break;
case 38:
$('#move').stop().animate({
top: '-=20'
}).animate({
top: '+=20'
}); //up arrow key (jump)
break;
case 39:
$('#move').animate({
left: '+=2'
},1); //right arrow key
break;
}
});
这可能是一些非常愚蠢的东西,比如我缺少的属性,但我不太明白。
编辑:我在各种浏览器中尝试过,但仍然遇到同样的问题。
编辑2:我已经把它放在jsfiddle上,虽然它的工作方式与我自己的浏览器不同,但它应该给你一个想法:P http://jsfiddle.net/urAGB/4/
最佳答案
heres my solution 。我只更改了 javascript。
规避这样的问题实际上有点复杂,这解释了大规模代码。这是一个演练:
- 在按键时间和检测到按键被“按住”之间自动移动对象的功能
- 我们会在特定条件下激活和停用此功能
通过更改 bufferTimeout
变量,您可以轻松调整这个所谓的延迟,直到检测到按键被按下为止。请随意将所有代码放入一个函数中,甚至将其放入外部 JavaScript 文件中以方便使用。
如果它解决了您的问题,请享受:)
关于javascript - jQuery 动画卡顿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15869683/