jQuery にはanimating
-event (not :animated
) がありますか? のようなものstep
ですが、追加のメソッド/イベントとして?
現在、各アニメーションのステップ関数でカスタム イベントをトリガーします。
$('.foo').animate({property: 'value'}, {
step: function(now, fx){
$(this).trigger('animating', [now, fx])
}
});
$('.foo').on('animating', function(e, now, fx){
// do what you want
});
どこかに確かにもっと良い解決策があると思います。アイデア/アプローチはありますか?
アップデート
私は (もちろん素晴らしいものではありませんが) 特別なイベントを作成しました。これにより、この問題の処理が少し簡単になります。
(function($){
var oldStep = $.fx.step._default;
jQuery.event.special.animating = { };
$.fx.step._default = function( fx ) {
$(fx.elem).trigger('animating', fx);
oldStep.apply( this, arguments );
};
}(jQuery));
これは、jQuery のアニメーション メソッドが変更されたため、jQuery 1.7+ では機能しません。または、ステップ関数が拡張できなくなったためです ($.fx.step は空の になりますobject
)。
jQuery.fx
を指すTween.prototype.init;
&
jQuery.fx.step
を指す{};
だからうまくいかない…
私はすべてのヒントをさらに見ていきます!