如果图像未旋转,则不调用jquery旋转回调

时间:2013-08-07 00:51:47

标签: javascript jquery

我有这段代码旋转图像然后移动它 - 除非图像不旋转,否则工作正常 - 意味着图像的当前角度等于它应该旋转的角度 - 在这种情况下是回调函数没有调用,所以没有动画。 rotate函数来自插件。

$("#Ship" + shipID).rotate({
                    duration: 500,
                    angle: $(this).getRotateAngle(),
                    animateTo: parseInt(rotate),
                    callback: function () {
                        $("#" + shipID).animate({
                            left: parseInt(moveX),
                            top: parseInt(moveY)
                        }, 500, function () {                            
                        });    
                    }
                })

如果在旋转后写入动画功能 - 则旋转和动画同时发生。

我不认为我可以强制回调,因为我必须编辑插件(但我不确定)。是否有一种方法可以在旋转后编写动画,但是等待旋转完成?我想一种方法是使用延迟,但是有更合适的方法吗?

1 个答案:

答案 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语句。同样,这将取决于你如何将这一切融合在一起(你怎么知道什么时候你想要旋转?)