2012-01-04 6 views
0

フェード機能を使用してフォトギャラリーを実装しようとしています。私は多くを通過しましたので、例としてthis oneを使用してください。JavaScriptがスタイルプロパティを順番に変更しない

opacity:0でスタックされたイメージの量がアニメーションを遅らせる(単一のイメージがスムーズに消える)IE 8で動作するように私のコードを取得しようとしています。この問題を解決するのは、画像がフェードアウトした後でdisplay:noneを行うことです。今起こっている問題は、完成したアニメーションの後ではなく、即座に私のイメージが消えることです。これを修正する方法はありますか?

マイ修正デモコード:

<div class="button" onclick=" 

    if(boole) 
     document.getElementById('fade').style.display = ''; 

    fadeEffect.init('fade', boole?1:0); 

if(!boole) 
     document.getElementById('fade').style.display = 'none'; 

    boole = !boole; 

">Fade In</div> 
+0

フェードエフェクトコードではできません。コールバックを渡すことができるようにする必要があります。そうしないと、コールバックを変更する必要があります。 – Pointy

+1

あなたのインラインコードを見て泣きました。 – Eonasdan

+0

@Pointyしたがって、 'clearInterval(this.si);の直後に' alert( "foo") 'を置き、アニメーションの後に実行します。私がディスプレイを置くとき:そこには誰も即座に私のおしゃぶりをディスパッファーしません。では、この問題はどのようにコールバックに関連していますか? – thanks4help

答えて

1

私はそのfadeEffect機能を提供していますかわからないが、ほとんどのJSエフェクトライブラリは、コールバック機能を持っている - 効果が完了したときに関数を呼び出します。 fadeEffectにこのような機能がある場合は、display: noneをそのコールバック関数に入れます。エフェクトが完了すると、コールバック関数が呼び出され、オフになります。

関連する問題