2012-01-10 120 views
0

你好傢伙我試圖做一個簡單的動畫,但有些延遲,但它不工作,請給我一隻手。這裏是代碼jquery延遲不起作用

$(document).ready(function() { 
    $('.detailsholder').hide() 
    $(".detailsholder").animate({"top": '-520px'},1) 
    $('.detailsholder').hide() 
    $('.detailsholder').fadeIn(500) 
    $('.detailsholder').delay(5000).animate({'top': "-260px",'easing': "easeInElastic"}, 400).delay(5000).('.detailsholder').animate({'top': "0px",'easing': "easeInElastic"},400); 
}); 
+4

你的分號在哪裏? – 2012-01-10 15:12:29

+5

你應該鏈接你的jQuery語句。 – 2012-01-10 15:14:29

+2

:(這是JavaScript的知識的jQuery的不良影響的例子 – Harmen 2012-01-10 15:51:58

回答

0
$(function(){ 
    $('.detailsholder').hide().animate({"top": '-520px'},1).fadeIn(500).delay(5000).animate({'top': "-260px",'easing': "easeInElastic"},400).delay(5000).animate({'top': "0px",'easing': "easeInElastic"},400); 
}); 
+0

此劑量不工作 – 2012-01-10 15:50:17

0

我假設你希望動畫結束後,在這種情況下,你應該把它放到回調每個delay()發生。就目前而言,延遲將在動畫發生時運行。

此外,作爲評論說,你真的應該鏈中的語句並添加分號你行結束。

+0

是的,我想每個動畫 – 2012-01-10 15:50:34

0

也有一些是錯誤代碼中的第6行(我分裂該行分成若干這裏更好的閱讀:

$('.detailsholder') 
.delay(5000) 
.animate({'top': "-260px",'easing': "easeInElastic"}, 400) 
.delay(5000) 
.('.detailsholder') // The method is missing here! 
.animate({'top': "0px",'easing': "easeInElastic"},400); 

注意:您也應連鎖jQuery代碼並把分號每個命令後。 。

+0

我嘗試這一個我不工作 – 2012-01-10 15:49:36

+0

後延遲「的方法在這裏失蹤!」? – Stefan 2012-01-10 16:17:34

+0

這不工作,因爲它是你的代碼嗎?看看你在忘記該方法的註釋線。 – 2012-01-10 16:40:55

0

這裏有一個solution爲你;

$('.detailsholder') 
    .hide() 
    .css('top', '200px') 
    .fadeIn(500) 
    .delay(2000) 
    .animate({'top': "100px", 'easing': "easeInElastic"}, 400) 
    .delay(2000) 
    .animate({'top': "0px", 'easing': "easeInElastic"}, 400); 

您可能會考慮使用ID而不是類,因爲您的動畫看起來很獨特。

享受! :)