Search and Top Navigation
#7123 open bug ()
Opened March 16, 2011 05:05PM UTC
Last modified January 25, 2013 09:23PM UTC
Not all effects are .stop() able or :animated detectable
Reported by: | gnarf | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | none |
Component: | ui.effects.core | Version: | 1.8.10 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
Since some animations are handled by animating other elements, I think that we could potentially do something like this:
el.data('ec.currentAnimations', $animatedStuff);
That way we can punch
.stop()to also look for this data key and call stop on children animations, as well as hooking
:animatedselector to do the same...
Attachments (0)
Change History (9)
Changed March 16, 2011 05:08PM UTC by comment:1
Changed March 28, 2011 06:25PM UTC by comment:2
status: | new → open |
---|
Changed June 14, 2011 09:53PM UTC by comment:3
milestone: | 1.9 → 1.next |
---|
http://bugs.jqueryui.com/ticket/5320 --- blind
Changed August 07, 2011 07:52AM UTC by comment:4
_comment0: | I just noticed this issue when I wanted to do some accordion-style effects with "fold". Indeed a .stop(), or even a .stop(true, true) is insufficient in case an effect is animating other elements. In case of fold() the wrapper is involved. \ \ So I am using the following workaround which "works for me" in the case of hiding/showing with "fold" and also works well if some non-animatid hides/showes are involved as well:: \ \ \ $.fn.stopcompletely = function() { \ // stop an animation comletely. \ // Why we need this? - stop should be enough, but because we \ // are using the composite animations predefined by jquery-ui, \ // stop() does not completely stop them and some deferred part continues. \ // This workaround attempts to put an "end to all". \ return this.each(function() { \ var el = $(this); \ if (el.parent().is( ".ui-effects-wrapper" )) { \ el.parent() \ .stop(true, true) \ .replaceWith(el); \ } \ el.stop(true, true); \ }); \ }; \ \ Obviously the real solution not this, but as as the ticket suggests, I am just giving this comment because my workaround may be useful for others until this issue is solved properly. \ → 1350523622649947 |
---|
I just noticed this issue when I wanted to do some accordion-style effects with "fold". Indeed a .stop(), or even a .stop(true, true) is insufficient in case an effect is animating other elements. In case of fold() the wrapper is involved.
So I am using the following workaround which "works for me" in the case of hiding/showing with "fold" and also works well if some non-animatid hides/showes are involved as well::
$.fn.stopcompletely = function() { // stop an animation comletely. // Why we need this? - stop should be enough, but because we // are using the composite animations predefined by jquery-ui, // stop() does not completely stop them and some deferred part continues. // This workaround attempts to put an "end to all". return this.each(function() { var el = $(this); if (el.parent().is( ".ui-effects-wrapper" )) { el.parent() .stop(true, true) .replaceWith(el); } el.stop(true, true); }); };
Obviously the real solution not this, but as as the ticket suggests, I am just giving this comment because my workaround may be useful for others until this issue is solved properly.
Changed October 03, 2012 05:03PM UTC by comment:5
milestone: | 1.next → 1.10.0 |
---|
Changed October 18, 2012 01:38AM UTC by comment:6
keywords: | → usecssclip |
---|
Still reproducible using latest: http://jsfiddle.net/CtETg/3/
Changed October 18, 2012 01:39AM UTC by comment:7
This problem goes away if we get rid of wrapper animations, and use css clip animations instead.
Changed November 07, 2012 06:25PM UTC by comment:8
keywords: | usecssclip |
---|
Changed January 25, 2013 09:23PM UTC by comment:9
milestone: | 1.10.0 → none |
---|
http://jsfiddle.net/CtETg/