Has jQuery an 'animating'-event?

二次信任 提交于 2019-12-11 18:48:11

问题


Has jQuery an animating-event (not :animated)? Something like step, but as extra method/event?

Currently I trigger a custom event in each animations step-function:

$('.foo').animate({property: 'value'}, {
    step: function(now, fx){
        $(this).trigger('animating', [now, fx])
    }
});

$('.foo').on('animating', function(e, now, fx){
    // do what you want
});

I think there's somewhere in the wild assuredly a better solution. Any ideas/approaches?

Update

I've written a (of course not awesome) special event, what make's handling this problem a bit easier:

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

This doesn't work with jQuery 1.7+ since jQuery's animation method was changed, or rather the step function is not longer extendable ($.fx.step results in an empty object).

jQuery.fx refers to Tween.prototype.init; & jQuery.fx.step to {};

So it can't work...

I look still further on every tip!

来源:https://stackoverflow.com/questions/14468421/has-jquery-an-animating-event

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!