mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
FX Queueing added. Effects no longer mess up causing weird results.
This commit is contained in:
parent
807c75dadf
commit
268c82a903
93
fx/fx.js
93
fx/fx.js
@ -3,54 +3,108 @@ $.speed = function(s,o) {
|
||||
o = o || {};
|
||||
var ss = {"crawl":1200,"xslow":850,"slow":600,"medium":400,"fast":200,"xfast":75,"normal":400};
|
||||
o.duration = typeof s == "number" ? s : ss[s] || 400;
|
||||
|
||||
o.oldComplete = o.onComplete;
|
||||
o.onComplete = function(){
|
||||
$.dequeue(this, 'fx');
|
||||
if ( o.oldComplete && o.oldComplete.constructor == Function ) {
|
||||
$.apply( this, o.oldComplete );
|
||||
}
|
||||
};
|
||||
|
||||
return o;
|
||||
};
|
||||
|
||||
$.queue = {};
|
||||
|
||||
$.dequeue = function(elem,type){
|
||||
type = type || 'fx';
|
||||
|
||||
if ( elem.$$queue && elem.$$queue[type] ) {
|
||||
// Remove self
|
||||
elem.$$queue[type].shift();
|
||||
|
||||
// Get next function
|
||||
var f = elem.$$queue[type][0];
|
||||
|
||||
if ( f ) {
|
||||
$.apply( elem, f );
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.queue = function(type,fn){
|
||||
if ( !fn ) {
|
||||
fn = type;
|
||||
type = 'fx';
|
||||
}
|
||||
|
||||
return this.each(function(){
|
||||
if ( !this.$$queue ) {
|
||||
this.$$queue = {};
|
||||
}
|
||||
|
||||
if ( !this.$$queue[type] ) {
|
||||
this.$$queue[type] = [];
|
||||
}
|
||||
|
||||
this.$$queue[type].push( fn );
|
||||
|
||||
if ( this.$$queue[type].length == 1 ) {
|
||||
$.apply(this,fn);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$.fn._hide = $.fn.hide;
|
||||
|
||||
$.fn.hide = function(a,o) {
|
||||
o = $.speed(a,o);
|
||||
return a ? this.each(function(){
|
||||
return a ? this.queue(function(){
|
||||
new $.fx.FadeSize(this,o).hide();
|
||||
}) : this._hide();
|
||||
};
|
||||
|
||||
$.fn._show = $.fn.show;
|
||||
|
||||
$.fn.show = function(a,o) {
|
||||
o = $.speed(a,o);
|
||||
return a ? this.each(function(){
|
||||
return a ? this.queue(function(){
|
||||
new $.fx.FadeSize(this,o).show();
|
||||
}) : this._show();
|
||||
};
|
||||
|
||||
$.fn.slideDown = function(a,o) {
|
||||
o = $.speed(a,o);
|
||||
return this.each(function(){
|
||||
return this.queue(function(){
|
||||
new $.fx.Resize(this,o).show("height");
|
||||
});
|
||||
};
|
||||
|
||||
$.fn.slideUp = function(a,o) {
|
||||
o = $.speed(a,o);
|
||||
return this.each(function(){
|
||||
return this.queue(function(){
|
||||
new $.fx.Resize(this,o).hide("height");
|
||||
});
|
||||
};
|
||||
|
||||
$.fn.fadeOut = function(a,o) {
|
||||
o = $.speed(a,o);
|
||||
return a ? this.each(function(){
|
||||
return a ? this.queue(function(){
|
||||
new $.fx.Opacity(this,o,1).hide();
|
||||
}) : this._hide();
|
||||
};
|
||||
|
||||
$.fn.fadeIn = function(a,o) {
|
||||
o = $.speed(a,o);
|
||||
return a ? this.each(function(){
|
||||
return a ? this.queue(function(){
|
||||
new $.fx.Opacity(this,o,1).show();
|
||||
}) : this._show();
|
||||
};
|
||||
|
||||
$.fn.fadeTo = function(a,ev,o) {
|
||||
o = $.speed(a,o);
|
||||
return a ? this.each(function(){
|
||||
return a ? this.queue(function(){
|
||||
ef = new $.fx.Opacity(this,o);
|
||||
ef.custom(ef.cur(),parseFloat(ev));
|
||||
ef.show();
|
||||
@ -172,24 +226,29 @@ $.fx = function(el,op,ty){
|
||||
clearInterval(z.timer);
|
||||
z.timer = null;
|
||||
|
||||
z.now = lastNum;
|
||||
z.a();
|
||||
|
||||
// Reset the overflow
|
||||
y.overflow = z.oldOverflow;
|
||||
|
||||
// If the element is, effectively, hidden - hide it
|
||||
if( y.height == "0px" || y.width == "0px" ) {
|
||||
y.display = "none";
|
||||
}
|
||||
|
||||
// If the element was shown, and not using a custom number,
|
||||
// set its height and width to auto
|
||||
if ( ty != "opacity" && z.o.auto ) {
|
||||
$.setAuto( z.el, 'height' );
|
||||
$.setAuto( z.el, 'width' );
|
||||
// set its height and/or width to auto
|
||||
if ( (ty == "height" || ty == "width") && z.o.auto ) {
|
||||
$.setAuto( z.el, ty );
|
||||
}
|
||||
|
||||
// If a callback was provided, execute it
|
||||
if( z.o.onComplete.constructor == Function ) {
|
||||
$.apply( z.el, z.onComplete );
|
||||
|
||||
// Yes, this is a weird place for this, but it needs to be executed
|
||||
// only once per cluster of effects.
|
||||
// If the element is, effectively, hidden - hide it
|
||||
if ( y.height == "0px" || y.width == "0px" ) {
|
||||
y.display = "none";
|
||||
}
|
||||
|
||||
$.apply( z.el, z.o.onComplete );
|
||||
}
|
||||
} else {
|
||||
// Figure out where in the animation we are and set the number
|
||||
|
3
jquery/jquery.js
vendored
3
jquery/jquery.js
vendored
@ -365,7 +365,7 @@ $.getCSS = function(e,p) {
|
||||
els.visibility = 'hidden';
|
||||
els.position = 'absolute';
|
||||
els.display = '';
|
||||
oHeight = e.clientHeight - ph || parseInt(e.style.height,10);
|
||||
oHeight = e.clientHeight || parseInt(e.style.height,10);
|
||||
oWidth = e.clientWidth || parseInt(e.style.width,10);
|
||||
els.display = od;
|
||||
els.position = op;
|
||||
@ -398,7 +398,6 @@ $.clean = function(a) {
|
||||
for ( var i = 0; i < a.length; i++ ) {
|
||||
if ( a[i].constructor == String ) {
|
||||
if ( a[i].indexOf("<tr") == 0 ) {
|
||||
//alert("tr");
|
||||
var tr = true;
|
||||
a[i] = "<table>" + a[i] + "</table>";
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user