Fix #12846. Restore overflow when animation is stopped.

(Cherry picked from a6c358d)
This commit is contained in:
Dave Methvin 2013-01-26 22:02:15 -05:00
parent 74aa3eb79c
commit 3f9f2b1dbc
2 changed files with 5 additions and 3 deletions

2
src/effects.js vendored
View File

@ -303,7 +303,7 @@ function defaultPrefilter( elem, props, opts ) {
if ( opts.overflow ) {
style.overflow = "hidden";
if ( !jQuery.support.shrinkWrapBlocks ) {
anim.done(function() {
anim.always(function() {
style.overflow = opts.overflow[ 0 ];
style.overflowX = opts.overflow[ 1 ];
style.overflowY = opts.overflow[ 2 ];

View File

@ -1787,16 +1787,18 @@ asyncTest("Animation callbacks (#11797)", 15, function() {
});
});
test( "Animate properly sets overflow hidden when animating width/height (#12117)", 4, function() {
test( "Animate properly sets overflow hidden when animating width/height (#12117)", 8, function() {
jQuery.each( [ "height", "width" ], function( _, prop ) {
jQuery.each( [ 100, 0 ], function( _, value ) {
var div = jQuery("<div>"),
var div = jQuery("<div>").css( "overflow", "auto" ),
props = {};
props[ prop ] = value;
div.animate( props, 1 );
equal( div.css( "overflow" ), "hidden",
"overflow: hidden set when animating " + prop + " to " + value );
div.stop();
equal( div.css( "overflow" ), "auto",
"overflow: auto restored after animating " + prop + " to " + value );
});
});
});