2012-02-08 87 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 2012-02-08 16:14:20

+0

@TheBlackBenzKid:您發佈的代碼應該可以正常工作。你有什麼問題? – 2012-02-08 16:15:41

+0

你的代碼有什麼問題?是否div需要很長時間才能顯示,並且jQuery在加載之前觸發? – j08691 2012-02-08 16:17:27

回答

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毫秒。 – 2012-02-08 16:20:43

+0

是的,你說得對。我已經刪除了額外的時間。 – Samich 2012-02-08 16:27:16

0

上面的代碼究竟有什麼問題?它看起來功能(除了你了slideDown /效果基本show,沒有淡出當你在指令中指示)

下面就來達到同樣效果的替代方法:

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

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

}); 
+0

這完成了什麼? – 2012-02-08 16:16:01

0

減少在您的.slideUp()任何您需要的時間。這裏有一個例子:

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

在50ms的,你真的不看.slideUp()效果,如果你的內容的高度小。這就是爲什麼使用.hide()代替它更好。

+0

我將如何使用隱藏 - >請舉例嗎? – TheBlackBenzKid 2012-02-08 16:31:51

+0

$(「#load_limit」)。hide()。delay(5000).show(); – Uzbekjon 2012-02-08 16:35:20

0

找到div,等待n秒,然後用n毫秒的過渡時間向上滑動。

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