在制作动画之前存储定位数据

时间:2012-06-11 15:43:57

标签: javascript jquery jquery-animate

我想使用jQuery的animate()为DIV制作动画,通过ajax加载新内容并将动画重新设置回原始位置。为了以后回放动画,我通过data()存储左侧位置。

到目前为止,这是代码:

(function($){
    //Transition Out
$.fn.ajaxTransitionOut = function() {
    var origin = this.css('left');      
    var amount = $(window).width()*-1;

    return $(this).data('origin',origin).stop().animate({left:amount, opacity:0}, 400);

};

})(jQuery);

第二次尝试:

(function($){
    //Transition Out
$.fn.ajaxTransitionOut = function() {
    var origin = $(this).css('left');
    $(this).data('origin',origin)       
    var amount = $(window).width()*-1;

    return $(this).data('origin',origin).stop().animate({left:amount, opacity:0}, 400);

};

})(jQuery);

问题:存储旧位置的速度太慢,而数据“origin”是一个值,同时为Object设置动画。 (任何减值)

如果我延迟动画,则存储正确的值,但这不是我想要的。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

如果使用load,则可以在加载完成后触发函数。此外,使用ajax还可以选择之前,成功和完成。这是文档中的加载示例。

$('#result').load('ajax/test.html', function() {
  alert('Load was performed.');
});