2011-07-05 93 views
3

我試圖改變IMG SRC然後設置不透明度爲0,然後褪色。jQuery的淡入不工作

$("#featureImg").attr('src','07.jpg').css({opacity:0}).fadeIn("slow"); 

這個工程到

.css({opacity:0}) 

這意味着它設置不透明度爲0,但淡化從未發生。

回答

8

這個問題是由於將fadeIn()與CSS不透明度組合使用而引起的。要隱藏元素,然後淡入(),則應該使用的CSS({顯示: '無'})或.hide(),隨後淡入(),像這樣:

$("#featureImg").attr('src','07.jpg').css({display:'none'}).fadeIn("slow"); 

$("#featureImg").attr('src','07.jpg').hide().fadeIn("slow"); 

fadeIn()的目的是顯示一個「隱藏」元素,「隱藏」由jQuery解釋爲不顯示,而不是零不透明。

+0

@shelhameer,在這種情況下,您可以使用.hide().fadIn() – kobe

+1

@kobe,我在我的答案的文本中包含了.hide(),但未將其放入代碼示例中。我已經添加了它,因爲你提到了它。謝謝。 – shelhamer

+0

+1對於很好的解釋 – kobe

3

不透明度值爲0使對象完全透明。所以當fadeIn()工作時,它在一個透明對象中消失。

1

如果您想淡化不透明度,請改爲使用.fadeTo("slow", 1);。隱藏元素將重排頁面並移動內容,所以如果希望所有內容都保持原位,請使用此內容。