Fade out and slide up at the same time?
Asked Answered
I

6

11

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.

Individuate answered 21/7, 2011 at 9:55 Comment(1)
possible duplicate of fadeOut() and slideUp() at the same time?Deangelo
B
17
$(that)
    .parents(".portlet")
    .animate({height: 0, opacity: 0}, 'slow', function() {
        $(this).remove();
    });
Broadfaced answered 21/7, 2011 at 10:0 Comment(1)
Dang, I'm too slow doing a jsfiddle :( ... Well, here's the demoMonetta
G
4

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/

Grunter answered 21/7, 2011 at 10:1 Comment(0)
G
1

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

Gravimeter answered 21/7, 2011 at 10:5 Comment(0)
D
1

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(); 
        });
Disjoin answered 21/10, 2013 at 9:43 Comment(0)
E
0

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/

Exsanguinate answered 21/7, 2011 at 10:1 Comment(0)
K
0

You can use .animate().

$(that).parents(".portlet").animate({
    opacity: 0,
    height: 0
}, 'slow', 'linear', function() {
    $(that).parents(".portlet").remove();
});
Kenelm answered 21/7, 2011 at 10:2 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.