2011-07-21 14 views
11

Mam następujący skrypt, który działa dobrze:Zanikanie i przesuwanie w tym samym czasie?

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

To po prostu znika element, a następnie usuwa je całkowicie z ekranu.

Chcę nieznacznie poprawić efekt, przesuwając go w górę, gdy zanika. Jak to zrobić?

Po to, by wyjaśnić, nie chcę, żeby to zniknęło THEN przesuń się, albo przesuń w górę TO ZMNIEJSZĘ, chciałbym, żeby to zniknęło, I jednocześnie, podczas gdy zanika, chciałbym to się podsunie.

+0

możliwe duplikat [wyciszenia() i slideUp(), w tym samym czasie?] (Http://stackoverflow.com/questions/2387515/fadeout-and-slideup-at-the-same-time) –

Odpowiedz

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

Dang, zbyt wolno robię jsfiddle :(... No cóż, [tutaj jest wersja demo] (http://jsfiddle.net/Chouchen/p5AuB/) – Shikiryu

4

co:

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

trafi do opacque 0 i wysokość 0.

Dowiedz się więcej tutaj:

0

można użyć .animate funkcję jQuery

możesz ustawić dowolną liczbę animacji.

wprost krycie jako parametr & również slideUp jako parametr

api.jquery.com/animate/

0

Można wykorzystać .animate().

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

Aby uniknąć skoki efekt nie zapomnij o dopełnienie & margines. Zespół jQuery nie używa właściwości 0. Zamiast tego używają wartości "ukryj" & "pokaż". na przykład

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