我让这段代码旋转一个图像,然后移动它--这很好,除非图像不旋转--这意味着图像的当前角度等于它应该旋转的角度--在这种情况下,回调函数没有被调用,所以没有动画。旋转功能来自一个插件。
$("#Ship" + shipID).rotate({
duration: 500,
angle: $(this).getRotateAngle(),
animateTo: parseInt(rotate),
callback: function () {
$("#" + shipID).animate({
left: parseInt(moveX),
top: parseInt(moveY)
}, 500, function () {
});
}
})如果动画函数是在旋转之后编写的,那么旋转和动画同时发生。
我不认为我可以强制回调,因为我必须编辑插件(但我不确定)。是否有方法在旋转后编写动画,但等待旋转完成?我想一种方法是使用延迟,但是有没有更合适的方法呢?
发布于 2013-08-07 01:23:08
在尝试使用插件执行任何操作之前,您必须检查旋转。我不太确定你将如何检查当前的轮值,但是:
var currentRotation = $("#Ship" + shipID).getRotateAngle();
if(currentRotation != rotate) {
$("#Ship" + shipID).rotate({
duration: 500,
angle: $(this).getRotateAngle(),
animateTo: parseInt(rotate),
callback: function () {
$(this).rotate({
animateTo: rotate
});
$("#" + shipID).animate({
left: parseInt(moveX),
top: parseInt(moveY)
}, 500);
}
});
}根据您的确切设置和插件的工作方式,您可能需要检查插件方法中的currentRotation。或者,您可能需要设置一些事件来执行if语句。再说一遍,这将取决于你是如何把这一切组合在一起的(你怎么知道什么时候你想要旋转的东西?)
https://stackoverflow.com/questions/18092895
复制相似问题