我有这段代码旋转图像然后移动它 - 除非图像不旋转,否则工作正常 - 意味着图像的当前角度等于它应该旋转的角度 - 在这种情况下是回调函数没有调用,所以没有动画。 rotate函数来自插件。
$("#Ship" + shipID).rotate({
duration: 500,
angle: $(this).getRotateAngle(),
animateTo: parseInt(rotate),
callback: function () {
$("#" + shipID).animate({
left: parseInt(moveX),
top: parseInt(moveY)
}, 500, function () {
});
}
})
如果在旋转后写入动画功能 - 则旋转和动画同时发生。
我不认为我可以强制回调,因为我必须编辑插件(但我不确定)。是否有一种方法可以在旋转后编写动画,但是等待旋转完成?我想一种方法是使用延迟,但是有更合适的方法吗?
答案 0 :(得分:1)
在尝试使用插件执行任何操作之前,您必须检查旋转。我不确定你将如何检查当前的轮换,但是:
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
语句。同样,这将取决于你如何将这一切融合在一起(你怎么知道什么时候你想要旋转?)