2012-02-08 10 views
2

私は次のjQueryを使用しています。 divボックスが上にスライドし、5秒後にフェードアウトします。ボックスを表示するのに時間がかかるので、これを達成する方法はありますか?jQuery遅延のあるスライドアップ方法は?

$(document).ready(function() { 
    $("#load_limit").slideUp(500); //have tried "fast" also 
    $("#load_limit").delay(5000); 
    $("#load_limit").slideDown(500); 
}); 
+0

遅延を短くしたいですか? – summea

+0

@ TheBlackBenzKid:投稿したコードはうまくいくはずです。あなたはどんな問題を抱えていますか? –

+0

コードに何が問題なのですか? divが表示されるまでに時間がかかり、jQueryがロードされる前に起動していますか? – j08691

答えて

10

あなたはコールバック関数に遅らせることができます。

$(document).ready(function() { 
    $("#load_limit").slideUp(500, function() { 
    $("#load_limit").delay(5000).slideDown(500); 
    }); 
}); 

またはあなたはそれを簡素化することができます

$(document).ready(function() { 
    $("#load_limit").slideUp(500) 
        .delay(5000) 
        .slideDown(500); 
}); 

共同de:http://jsfiddle.net/xjEy5/2/

+2

どちらかの理由はありません。 'delay'は' slideUp'が完了するのを待ちます。余分な500ミリ秒を追加すると余分な500ミリ秒が遅れます。 –

+0

うん、あなたは正しい。私は余分なタイミングを削除しました。 – Samich

0

上記のコードに間違いがありますか?それは

(あなたは説明書に示されているようにあなたがslideDown/slideUpなしフェードアウトを持っている他よりも)の機能になります。ここと同じ効果を達成するための代替方法です:

jQuery(function($) { // same as $(document).ready() but no conflicts :) 

    $('#load_limit').slideDown(500, function() { 
     var self = this; 
     setTimeout(function() { 
     $(self).fadeOut(500); 
     }, 5000); 
    }); 

}); 
+0

これは何を達成するのですか? –

0

.slideUp()の時間を必要な時間に短縮します。次に例を示します。コンテンツの高さが小さい場合は50msで、あなたが本当に.slideUp()効果が表示されていない

$("#load_limit").slideUp(50).delay(5000).slideDown(50);

。そのため、代わりに.hide()を使用する方が良いです。

+0

hideを使用するにはどうすればよいのですか? – TheBlackBenzKid

+0

$( "#load_limit")。hide()。delay(5000).show(); – Uzbekjon

0

divを見つけてn秒間待ってから、nミリ秒の移行時間をかけてスライドします。

$("#div").delay(5000).slideUp(1000);