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を指す{};
だからうまくいかない…
私はすべてのヒントをさらに見ていきます!