git.asbjorn.biz
/
jquery.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix for #4204, fadeTo shows hidden elements before animating
[jquery.git]
/
src
/
fx.js
diff --git
a/src/fx.js
b/src/fx.js
index
39456e0
..
45c2389
100644
(file)
--- a/
src/fx.js
+++ b/
src/fx.js
@@
-44,9
+44,15
@@
jQuery.fn.extend({
elemdisplay[ tagName ] = display;
}
elemdisplay[ tagName ] = display;
}
- this[i].style.display = jQuery.data(this[i], "olddisplay", display);
+ jQuery.data(this[i], "olddisplay", display);
}
}
}
}
+
+ // Set the display of the elements in a second loop
+ // to avoid the constant reflow
+ for ( var i = 0, l = this.length; i < l; i++ ){
+ this[i].style.display = jQuery.data(this[i], "olddisplay") || "";
+ }
return this;
}
return this;
}
@@
-60,8
+66,14
@@
jQuery.fn.extend({
var old = jQuery.data(this[i], "olddisplay");
if ( !old && old !== "none" )
jQuery.data(this[i], "olddisplay", jQuery.css(this[i], "display"));
var old = jQuery.data(this[i], "olddisplay");
if ( !old && old !== "none" )
jQuery.data(this[i], "olddisplay", jQuery.css(this[i], "display"));
+ }
+
+ // Set the display of the elements in a second loop
+ // to avoid the constant reflow
+ for ( var i = 0, l = this.length; i < l; i++ ){
this[i].style.display = "none";
}
this[i].style.display = "none";
}
+
return this;
}
},
return this;
}
},
@@
-83,7
+95,8
@@
jQuery.fn.extend({
},
fadeTo: function(speed,to,callback){
},
fadeTo: function(speed,to,callback){
- return this.animate({opacity: to}, speed, callback);
+ return this.filter(":hidden").css('opacity', 0).show().end()
+ .animate({opacity: to}, speed, callback);
},
animate: function( prop, speed, easing, callback ) {
},
animate: function( prop, speed, easing, callback ) {
@@
-273,7
+286,7
@@
jQuery.fx.prototype = {
t.elem = this.elem;
t.elem = this.elem;
- if ( t() && jQuery.timers.push(t) == 1 ) {
+ if ( t() && jQuery.timers.push(t) && !timerId ) {
timerId = setInterval(function(){
var timers = jQuery.timers;
timerId = setInterval(function(){
var timers = jQuery.timers;
@@
-283,6
+296,7
@@
jQuery.fx.prototype = {
if ( !timers.length ) {
clearInterval( timerId );
if ( !timers.length ) {
clearInterval( timerId );
+ timerId = undefined;
}
}, 13);
}
}
}, 13);
}