2011-07-15 46 views
0

我已經看到了一些這方面的帖子,但沒有一個解決方案適用於我 - 我嘗試了很多。我只是執行一個簡單的序列 - 淡出div,加載內容,淡入深入,但加載的內容稍後會以完全不透明的方式出現,然後消失,然後執行淡入淡出。我已經嘗試將加載的div的顯示屬性設置爲none,然後在淡入功能中顯示它,設置延遲,顯示等等。我嘗試了fadeTo,fadeOut等。順便說一句,hide()可以正常工作,但這不是我想要的效果。與fadeTo相關的負載jQuery的閃爍

這裏是我的代碼:

...

$('#bio_container').fadeOut(500,loadContent(ident)); 
}); 

function loadContent(ident){ 
    $('#bio_container').load('/index.php/ajax/bios/' + ident,showContent); 
} 

function showContent(){ 
    $('#bio_container').fadeIn(500); 
} 

任何想法,將不勝感激。

回答

1

試試這個。

$('#bio_container').fadeOut(500, function(){ 
    loadContent(ident) 
}); 

編輯:如果你看看fadeOut的定義,它接受一個回調作爲參數,並在動畫結束時調用該函數。所以回調引用或者是像上面那樣的內聯函數定義,或者是沒有paranthesis的函數名稱。如果你給這樣的someFunction()函數計算函數,然後將返回值作爲參數。當動畫完成並調用結果時,可能會拋出一個被抑制的異常。

+0

哇。有效。謝謝!你能解釋爲什麼嗎? – mheavers

+0

@mheavers我編輯了答案並添加了一些未經訓練的觀點:) –

0

發生這種情況,因爲javascript是以直線形式執行的,並且fadeOut(time,fn)執行fn,然後執行淡入淡出。

爲了解決這個問題,我使用了一些JQuery插件,您的情況我建議this simple slideshow,或者如果您正在尋找更具體的東西,請參閱this list。 PS:對不起,我的英語不好。