jQuery 动画移动
jQuery animation movement
我正在尝试制作一个方块在 window 周围随机移动的动画,直到您单击它为止,此时它会消失,而另一个方块会出现。但是我遇到了一个奇怪的问题,块有时会在屏幕上跳来跳去而不是四处滑动。
不太确定我的动画有什么问题,希望有人能检查一下。谢谢!
var randomNumber = function(max) {
return Math.floor(Math.random() * (max - 0)) + 0;
}
var newPosition = function() {
var h = $(window).height() - width;
var w = $(window).width() - width;
var newH = randomNumber(h);
var newW = randomNumber(w);
return [newH, newW];
}
var moveBlock = function() {
var newCoor = newPosition();
$('.gameBlock').animate({
top: newCoor[0],
left: newCoor[1]
}, {
duration: 1500,
complete: function() {
moveBlock();
}
});
};
这是我移动方块的功能,剩下的在http://jsfiddle.net/L1qqo06x/。
您需要.stop()
队列才能删除块。
前一个对象的队列实际上仍然是 运行 并影响新对象。 .stop()
终止队列以便它可以重新开始。
我在 .remove()
之前添加了 .stop()
,现在它正常运行了:http://jsfiddle.net/L1qqo06x/1/
$("body").delegate(".gameBlock", "click", function() {
$(".gameBlock").stop().remove();
game();
});
点击后就开始跳动了,因为你是在重启动画,但之前的还在排队。你把它应用到 .gameBlock
class,新的块仍然有 class,你必须在重新设置之前停止它。
$(document).ready(function() {
game();
$("body").delegate(".gameBlock", "click", function() {
$(".gameBlock").stop().remove();
game();
});
});
我正在尝试制作一个方块在 window 周围随机移动的动画,直到您单击它为止,此时它会消失,而另一个方块会出现。但是我遇到了一个奇怪的问题,块有时会在屏幕上跳来跳去而不是四处滑动。
不太确定我的动画有什么问题,希望有人能检查一下。谢谢!
var randomNumber = function(max) {
return Math.floor(Math.random() * (max - 0)) + 0;
}
var newPosition = function() {
var h = $(window).height() - width;
var w = $(window).width() - width;
var newH = randomNumber(h);
var newW = randomNumber(w);
return [newH, newW];
}
var moveBlock = function() {
var newCoor = newPosition();
$('.gameBlock').animate({
top: newCoor[0],
left: newCoor[1]
}, {
duration: 1500,
complete: function() {
moveBlock();
}
});
};
这是我移动方块的功能,剩下的在http://jsfiddle.net/L1qqo06x/。
您需要.stop()
队列才能删除块。
前一个对象的队列实际上仍然是 运行 并影响新对象。 .stop()
终止队列以便它可以重新开始。
我在 .remove()
之前添加了 .stop()
,现在它正常运行了:http://jsfiddle.net/L1qqo06x/1/
$("body").delegate(".gameBlock", "click", function() {
$(".gameBlock").stop().remove();
game();
});
点击后就开始跳动了,因为你是在重启动画,但之前的还在排队。你把它应用到 .gameBlock
class,新的块仍然有 class,你必须在重新设置之前停止它。
$(document).ready(function() {
game();
$("body").delegate(".gameBlock", "click", function() {
$(".gameBlock").stop().remove();
game();
});
});