2011-07-15 7 views
0

私はこれについていくつかの記事を見てきましたが、私にとってはうまくいく解決策はありませんでした。私は単純なシーケンスを実行しています - コンテンツの読み込み、コンテンツの読み込み、フェードダイブインしますが、読み込まれたコンテンツは完全な不透明度で一瞬表示されて消えてからフェードを実行します。私はロードされたdivの表示プロパティをnoneに設定しようとしていましたし、関数のフェードイン、遅延の設定、表示などを試みました。私はfadeTo、fadeOutなどを試しました。ちなみにhide()それは私が望む効果ではありません。任意のアイデアをいただければ幸いですjquery flicker with fadeTo

...

$('#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) 
}); 

編集:あなたはフェードアウトの定義を見れば、それは引数としてコールバックを受け入れ、アニメーションが完了したその関数を呼び出します。だから、コールバック参照は、上記のようなインライン関数定義か、またはparanthesisのない関数名だけです。このsomeFunction()のようなものを与えると、関数を評価して戻り値を引数として取ります。また、アニメーションが終了して結果を呼び出すときに、抑制された例外がスローされます。

+0

ワウ。出来た。ありがとう!なぜ説明できますか? – mheavers

+0

@mheavers私は答えを編集し、未熟な観点からいくつかの情報を追加しました:) –

0

JavaScriptは直系の形で実行されるので、起こっただし、フェードアウト(時間、FN)がFNを実行した後、TEフェードを実行します。

この問題を解決するには、いくつかのJQueryプラグインを使用してください。具体的には、this simple slideshowをお勧めします。より具体的なものをお探しの場合はthis listをご覧ください。

PS:私の悪い英語のために申し訳ありません。