2011-07-18 111 views
1

我不知所措。在這個代碼中,#選項應該漸漸消失,但它不會。但CSS屬性已設置。回調不能正常工作

$("#content > p").animate({ opacity: '0' }, function() { 
    $(this).css("display", "none"); 
    $("#options").css("opacity", "0").show(0, function() { 
     $("#options").fadeIn(); 
    }); 
}); 
+0

你如何做一行代碼:'$(「#options」)。fadeIn();'這應該足夠了 – Ibu

+0

但我需要它也設置display:block,因此show功能。 –

回答

2

opacity仍然被設置爲0

您可以更改fadeIn()到...

$("#options").animate({ opacity: 1}, 500); 

jsFiddle

+0

是的,但我已將它設置爲淡入之後.. –

+2

感謝您的編輯。完美的作品。 –

+0

@John - 如果這回答您的問題,請確保並單擊​​問題旁邊的複選標記。 :)(不是@alex需要點數,介意你...... P) –

0

您可以簡化您的代碼 - 記住將不透明度設置爲0將複製visibility:hidden CSS屬性,而​​將複製display:none CSS屬性。這兩者之間的一個關鍵區別是後者將從呈現的DOM中移除元素,因此它不會佔用屏幕上的空間,並且周圍的節點甚至不會知道它在那裏。前者將創建一個大的空盒子,其中元素仍然是,但你無法看到它。假設你想使用後者是最常見的,這應該工作:

$('#content > p').fadeOut('slow', function() { 
    $('#options').fadeIn(); 
}); 
+0

你不明白。它有顯示:無;默認情況下,所以我需要顯示功能將其更改爲阻止。 –

+0

'fadeIn()'會自動將它設置爲'display:block' – AlienWebguy

2

好像它應該工作,但顯然你需要使用fadeTo()[docs]方法,而不是fadeIn()[docs]方法。

$('img').css("opacity", 0).show(0,function() { 
    $(this).fadeTo(400, 1); 
}); 

雖然show(0,func..似乎有點毫無意義在這裏,當你可能只是做:

$('img').css("opacity", 0).show().fadeTo(400, 1); 

...除非0你給了.show()時間實際上是一個變量,可能會引用更大的數字。