2009-09-16 29 views

Odpowiedz

8

animate trwa 2 więcej params, więc można zrobić:

$("a.shift") 
    .click(function() 
     { 
      $("#introOverlay") 
       .animate({height: 0}, 2000,"linear",function() 
        { 
         $(this).remove(); 
        } 
       ) 
     } 
    ); 

niesprawdzone.

EDIT: Testowany: oto pełna strona Kiedyś, który rozszerza się do 300px make usunięcie bardziej oczywiste:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
     <script type="text/javascript"> 
      //<![CDATA[ 
      $(document).ready(function() 
      { 
       $(".shift").click(function() 
       { 
        $("#introOverlay") 
        .animate({height: 300}, 2000,"linear",function() 
        { 
         $(this).remove(); 
        }) 
       }); 
      }); 
      //]]> 
     </script> 
    </head> 
    <body> 
    <a class="shift" href="javascript:void(0)">clickme</a> 
    <div id="introOverlay" style="background-color:red;height:200px;">overlay</div> 
    </body> 
</html> 
+0

Cześć Nieużywanie, To nie usuwa elementu po zakończeniu animacji. – Martin

+0

Idealny! Dzięki! – Martin

-3

Użyj window.timeout z taką samą ilością czasu jaką zajmuje animacja.

2

JQuery animate(params, [duration], [easing], [callback]) oferuje możliwość dodania zwrotnego, która jest wywoływana za każdym razem animacja jest zakończona

zwrotna (nieobowiązkowo) funkcje: a funkcji mają być wykonane, gdy animacja uzupełnia, wykonuje raz na każdy element animowany przeciwko.

Składnia jest dość dużo jQuery prosta:

<script> 
$(function() { 
    $("a.shift").click(function() { 
     $("#introOverlay").animate({ 
     height: 0, 
     }, 2000, "linear", 
      function() { 
       $("#introOverlay").hide(); 
      } 
     ) 
     }); 

    }) 
</script> 

Zobacz także ten SO question

+0

Dzięki daff , Czy możesz podać mi przykładowy kod? Jest to składnia, której nie rozumiem. – Martin

+0

Sprawdź pytanie, które podłączyłem, tam jest próbka kodu (tutaj też skopiowana). Zasadniczo po prostu przekazujesz funkcję zwrotną jako parametr. – Daff

1

zawiesić połączenie remove() w kolejce efekty jak ten:

$("a.shift").click(function() { 
    $("#introOverlay").animate({ 
    height: 0, 
    }, 2000); 
    $("#introOverlay").queue(function() { 
    $(this).remove(); 
    $(this).dequeue(); 
    }); 
}); 
+0

Szukałem sposobu na aktualizację tekstu w kolejce. Te słowa świetnie nadają się do umieszczania w kolejce wywołań innych niż kolejki, takich jak .text (""). –

Powiązane problemy