0

jQuery の で DIV をアニメーション化し、animate()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);

2回目の試行:

(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);

問題: 古い位置の保存が遅すぎて、データの「原点」はオブジェクトのアニメーション中の値です。(任意のマイナス値)

アニメーションを遅らせると、正しい値が保存されますが、それは私が望むものではありません。

どんな助けでも感謝します。

4

1 に答える 1

0

代わりに load を使用すると、読み込みが完了したら関数を起動できます。さらに、ajax を使用すると、before、success、complete などのオプションもあります。これは、ドキュメントのロード例です。

$('#result').load('ajax/test.html', function() {
  alert('Load was performed.');
});
于 2012-06-11T15:48:39.433 に答える