]> source.dussan.org Git - jquery-ui.git/commitdiff
UI Tabs: fixed broken animations and the frequently reported "jumpyness", fixes ...
authorKlaus Hartl <klaus.hartl@googlemail.com>
Wed, 21 Jan 2009 21:05:07 +0000 (21:05 +0000)
committerKlaus Hartl <klaus.hartl@googlemail.com>
Wed, 21 Jan 2009 21:05:07 +0000 (21:05 +0000)
ui/ui.tabs.js

index f2ca04f6e55437abf13031519844241a77dc34e8..3d566e5d1f516751ec6796072f9b4d091911f285 100644 (file)
@@ -233,7 +233,7 @@ $.widget("ui.tabs", {
                // set up animations
                var hideFx, showFx;
                if (o.fx) {
-                       if (o.fx.constructor == Array) {
+                       if ($.isArray(o.fx)) {
                                hideFx = o.fx[0];
                                showFx = o.fx[1];
                        }
@@ -250,11 +250,11 @@ $.widget("ui.tabs", {
                // Show a tab...
                var showTab = showFx ?
                        function(clicked, $show) {
-                               $show.animate(showFx, showFx.duration || 'normal', function() {
-                                       $show.removeClass('ui-tabs-hide');
-                                       resetStyle($show, showFx);
-                                       self._trigger('show', null, self.ui(clicked, $show[0]));
-                               });
+                               $show.hide().removeClass('ui-tabs-hide') // avoid flicker that way
+                                       .animate(showFx, 500, function() {
+                                               resetStyle($show, showFx);
+                                               self._trigger('show', null, self.ui(clicked, $show[0]));
+                                       });
                        } :
                        function(clicked, $show) {
                                $show.removeClass('ui-tabs-hide');
@@ -267,7 +267,7 @@ $.widget("ui.tabs", {
                                $hide.animate(hideFx, hideFx.duration || 'normal', function() {
                                        $hide.addClass('ui-tabs-hide');
                                        resetStyle($hide, hideFx);
-                                       if ($show) showTab(clicked, $show, $hide);
+                                       if ($show) showTab(clicked, $show);
                                });
                        } :
                        function(clicked, $hide, $show) {