oshirowanen
oshirowanen

Reputation: 15965

Fade out and slide up at the same time?

I have the following script which works well:

$(that).parents(".portlet").fadeOut('slow', function() {
    $(that).parents(".portlet").remove();
});

It just fades out the element, then removes it totally from the screen.

I want to slightly improve the effect by sliding it up while it is fading out. How would I do that?

Just to clarify, I don't want it to fade out THEN slide up, or slide up THEN fade out, I would like it to fade out, AND at the same time while it is fading out, I would like it to slide up.

Upvotes: 11

Views: 19291

Answers (6)

dominic
dominic

Reputation: 143

To avoid jumping-effect do not forget about the padding & margin. The jQuery-Team does not use property 0. Instead they are using the values 'hide' & 'show'. e.g.

    $('#elementId').animate({
            opacity: 'hide',      // animate slideUp
            margin: 'hide',
            padding: 'hide',
            height: 'hide'        // animate fadeOut
        }, 'slow', 'linear', function() {
            $(this).remove(); 
        });

Upvotes: 1

andyb
andyb

Reputation: 43823

With jQuery .animate(), you can manipulate many properties at once - see demo

Upvotes: 1

Ribose
Ribose

Reputation: 2233

You can use .animate().

$(that).parents(".portlet").animate({
    opacity: 0,
    height: 0
}, 'slow', 'linear', function() {
    $(that).parents(".portlet").remove();
});

Upvotes: 0

Gaurav Shah
Gaurav Shah

Reputation: 5279

you can use .animate function of jquery

you can set as many animations as you want.

pass opacity as the parameter & also slideUp as the parameter

api.jquery.com/animate/

Upvotes: 0

beardhatcode
beardhatcode

Reputation: 4773

what about:

$('#clickme').click(function() {
  $('#book').animate({
    opacity: 0,
    height: '0'
  }, 5000, function() {
    // Animation complete.
  });
});

will go to opacque 0 and height 0.

Learn more here: http://api.jquery.com/animate/

Upvotes: 4

Shef
Shef

Reputation: 45589

$(that)
    .parents(".portlet")
    .animate({height: 0, opacity: 0}, 'slow', function() {
        $(this).remove();
    });

Upvotes: 17

Related Questions