Accordion: Attempt at improving animation. #587

Closed
wants to merge 11 commits into
from

Conversation

Projects
None yet
2 participants
@scottgonzalez
Member

scottgonzalez commented Jan 31, 2012

This is an attempt at fixing #4178.

The logic is to use core as much as possible, then override the animation of the height of the panel being shown. Most browsers don't support fractional pixels, and even browsers that do support fractions can't handle the level of precision that we get during an animation. This causes the combined height of the panel being shown and the panel being hidden to jump around a bit during the animation. We try to deal with that by recalculating the total height at each step of the animation and adjusting the height of the panel being shown to account for any pixels that were lost or gained by the browser not being able to handle the exact values that were calculated by .animate().

This works great in Chrome and Opera. It's ok in IE and not so great in Firefox. However, this is better than what we have now in all browsers.

This code should not e committed as is. $.fx.step._height and the data key should probably be prefixed for accordion, there are var statements in the middle of functions, etc. This pull is just to keep notes around and hopefully provide a good starting point for a final solution.

ui/jquery.ui.accordion.js
@@ -17,6 +17,7 @@ $.widget( "ui.accordion", {
version: "@VERSION",
options: {
active: 0,
+ // TODO: animation option

This comment has been minimized.

@jzaefferer

jzaefferer Feb 15, 2012

Member

actually animate

@jzaefferer

jzaefferer Feb 15, 2012

Member

actually animate

@scottgonzalez

This comment has been minimized.

Show comment
Hide comment
@scottgonzalez

scottgonzalez Feb 16, 2012

Member

Landed in 3d9f6b5 :-)

Member

scottgonzalez commented Feb 16, 2012

Landed in 3d9f6b5 :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment