0

ここに問題があります: jsFiddle

私が望むのは、黄色の高さを60pxから 20px に変更するのは、スライドさせた後でのみです (クリックするとスライドします)。直し方?

 $(document).ready(function ()
   {
     $('#slide-link').click(function(){
       $(this).animate({ top: $(window).height()-40 },5000)
       $('#sliderWrapper').stop().hide("slide", { direction:"down" }, 5000); 
       $('#slide-link').height(20)
      //I want 20px to become after #sliderWrapper slided down, not on click
      //That's why I put $('#slide-link').height(20) as the last line
      // But it triggers asap. How to fix?
    })
})​

私が見る限り、終了$('#slide-link').height(20)するまで待機しません$('#sliderWrapper').stop().hide("slide", { direction:"down" }, 5000);

PS$('#slide-link').delay(5000).height(20)も役に立ちません。なんで?直し方?

4

1 に答える 1

4

.delay()アニメーション キューを使用する関数にのみ影響します。ただし、.height()アニメーションにまったく関連していないため、そのキューは使用されません。

必要なのは.hide()、アニメーションの完了後にトリガーされるコールバックです。

$('#sliderWrapper').stop().hide("slide", {
    direction: "down"
}, 5000, function() {
    $('#slide-link').height(20)
});

デモ: http://jsfiddle.net/ThiefMaster/DDeqU/3/

于 2012-08-12T21:21:05.143 に答える