jquery core: closes #2968. Simplified isFunction, dropping support for DOM methods...
[jquery.git] / src / fx.js
index b9ca81e..9dcedbf 100644 (file)
--- a/src/fx.js
+++ b/src/fx.js
@@ -45,26 +45,6 @@ jQuery.fn.extend({
                                });
        },
 
-       slideDown: function(speed,callback){
-               return this.animate({height: "show"}, speed, callback);
-       },
-
-       slideUp: function(speed,callback){
-               return this.animate({height: "hide"}, speed, callback);
-       },
-
-       slideToggle: function(speed, callback){
-               return this.animate({height: "toggle"}, speed, callback);
-       },
-
-       fadeIn: function(speed, callback){
-               return this.animate({opacity: "show"}, speed, callback);
-       },
-
-       fadeOut: function(speed, callback){
-               return this.animate({opacity: "hide"}, speed, callback);
-       },
-
        fadeTo: function(speed,to,callback){
                return this.animate({opacity: to}, speed, callback);
        },
@@ -75,13 +55,14 @@ jQuery.fn.extend({
                return this[ optall.queue === false ? "each" : "queue" ](function(){
                
                        var opt = jQuery.extend({}, optall), p,
-                               hidden = this.nodeType != 1 ? false : jQuery(this).is(":hidden"), self = this;
+                               hidden = this.nodeType == 1 && jQuery(this).is(":hidden"),
+                               self = this;
        
                        for ( p in prop ) {
                                if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden )
                                        return opt.complete.call(this);
 
-                               if ( p == "height" || p == "width" ) {
+                               if ( ( p == "height" || p == "width" ) && this.style ) {
                                        // Store display property
                                        opt.display = jQuery.css(this, "display");
 
@@ -177,6 +158,19 @@ jQuery.fn.extend({
 
 });
 
+// Generate shortcuts for custom animations
+jQuery.each({
+       slideDown: { height:"show" },
+       slideUp: { height: "hide" },
+       slideToggle: { height: "toggle" },
+       fadeIn: { opacity: "show" },
+       fadeOut: { opacity: "hide" }
+}, function( name, props ){
+       jQuery.fn[ name ] = function( speed, callback ){
+               return this.animate( props, speed, callback );
+       };
+});
+
 var queue = function( elem, type, array ) {
        if ( elem ){
 
@@ -216,7 +210,7 @@ jQuery.extend({
 
                opt.duration = (opt.duration && opt.duration.constructor == Number ?
                        opt.duration :
-                       jQuery.fx.speeds[opt.duration]) || jQuery.fx.speeds.def;
+                       jQuery.fx.speeds[opt.duration]) || jQuery.fx.speeds._default;
 
                // Queueing
                opt.old = opt.complete;
@@ -263,7 +257,7 @@ jQuery.fx.prototype = {
                (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
 
                // Set display property to block for height/width animations
-               if ( this.prop == "height" || this.prop == "width" )
+               if ( ( this.prop == "height" || this.prop == "width" ) && this.elem.style )
                        this.elem.style.display = "block";
        },
 
@@ -403,23 +397,19 @@ jQuery.extend( jQuery.fx, {
                slow: 600,
                fast: 200,
                // Default speed
-               def: 400
+               _default: 400
        },
        step: {
-               scrollLeft: function(fx){
-                       fx.elem.scrollLeft = fx.now;
-               },
-
-               scrollTop: function(fx){
-                       fx.elem.scrollTop = fx.now;
-               },
 
                opacity: function(fx){
                        jQuery.attr(fx.elem.style, "opacity", fx.now);
                },
 
                _default: function(fx){
-                       ( fx.elem.style && ( fx.elem.style[ fx.prop ] = fx.now + fx.unit ) ) || ( fx.elem[ fx.prop ] = fx.now );
+                       if( fx.prop in fx.elem ) 
+                               fx.elem[ fx.prop ] = fx.now;
+                       else if( fx.elem.style )
+                               fx.elem.style[ fx.prop ] = fx.now + fx.unit;
                }
        }
 });