2009-08-03 6 views
2

AJAXを使用してコンテンツを切り替えるページを作成しています.5ページにはそれぞれ背景色があります。jQueryの背景アニメーションの問題

ページを変更すると、現在の背景が新しいものにアニメーションされます。私はアルファ透明度を持つ24ビットPNGを持っています。

しかし、小さな問題が1つあります。場合によっては、Firefox 3.5.1以上、Safari 3/4では背景が変更されますが、私の#main-container divは変更されません。コンテナには確かにbackground: transparentがあります。

問題は、これは毎回発生するのではなく、時々のみ発生することです。これは私がブラウザを作っていることの変わったものに過ぎませんか?

背景色をアニメーション化するためにjQueryプラグインを使用しています。

私は、#main-containerが親コンテナ(body)の背景を継承するように強制する方法を知っていますか?

setInterval()でpingできますが、それは醜い解決策になります。

非常に感謝しています。

サイトがあり、右にメニューがあり、問題がどこにあるこれらのセクションがあるクリックhttp://www.acura.com.au/~kohana/

@閲覧可能です。クォークを見るには、少なくとも8回以上移動する必要があります。

ご協力いただきありがとうございます。

UPDATE

私は色をチェックするsetInterval()をしようとして...しかし、私は彼らが間違っている検出した場合、私はやる正確にわかりませんよ。タイミングに関しては、私の上記のコメントから上従って

+0

いい探しサイト。 Firefox 3.0.12で数回試してみましたが、問題を再現できませんでした。エラーが発生していますか? –

+0

エラーはありません:( – alex

+0

私はそれを再現することはできませんでした。しかし、あなたはそれがランダムに起こることができるだけだと思う​​のですが、タイミングの問題があるかもしれません。実際にコールバックを使用しています(アニメーションやAJAX呼び出しなどから)、すべてが少し遅く読み込まれると時々動作することを意味しますが、それが速く起こった場合、同期が外れる可能性があります – Alconja

答えて

1

(申し訳ありませんが、これは実際の答えはありませんが、コメント欄での十分なスペースがないのです)...私はこの問題は、以下のタイミングによるものだと思います2つのイベント:

  1. ダイナミック(非同期)新しいスタイルシートの負荷
  2. あなたは私はあなたのコードを読んでいる場合(

に問題をフェードする背景色をつかむupdatePage機能右)はあなたが色をつかんでいるということですあなたが動的にロードしているスタイルシートでスタイル設定されDIVからのADE。それはロード(ダウンロードが、DOMへのスタイルの適用だけではなく)を完了していない場合は、あなたがつかむ背景色は古いものになります。

ここからステップを踏むには...まず、CSSローダーのタイムアウトを実際には小さくするようにしてください。&これはバグをより頻繁に表示するかどうかを確認します。これが一致するようであれば、可能な解決策は、あなたはそれがその後、&を変更するなど、あなたの背景のアニメーション、と続けていく表示されるまで知られている古い色に対する背景色をテストすることをループ内でタイムアウトを使用することです

私は、サイトの技術的な部分について質問があります...

+0

残念ながら、最初のバージョンがすべてのスタイルシート情報を1つの大きなCSSファイルそれのダイナミックロード)と問題がそこにあった。私は 'backgroundFadeTo' varに原始警告を使用しました。これは常に正しいbackgroundColorでした。私の問題を再現できましたか?ご回答有難うございます。 – alex

+0

私は一度それを再現したと信じています。それは 'div.main-container'の色が正しく変更されたように見えましたが、' body'はそうではありませんでした...あなたがしていることと何か関係があります: '$( '#main-container' ).css( 'background'、backgroundFadeTo); '(アニメーションのコールバックの)' updatePage'関数では明示的に '$(" body ")'と同じことをしません。 – Alconja

+0

私はそれが問題を解決しようとしていたと思う。 Safariでもっと多くのことが起こっているようだ。それを見てくれてありがとう。 – alex

0

を役に立てば幸い、 私は(私が勘違いでしょうか?)見ての通り、あなたはメニューがクリックされたときに、AJAXを経由してCSSを取得します。画像も。ここでは、ページが読み込まれたときにサーバーからすべてを取得し、タグのCSSクラスを切り替えると良いアイデアだと思います。これはあなたのランダムな問題も解決するでしょう。 例:バックグラウンドアニメーションの場合、2つのクラスをアニメーションで切り替えるだけで済みます。

+0

あなたの答えをありがとう - 私は元々それをしていたが、問題は残っていた。説明するのは難しいです。スクリーンショットを投稿しようとします。 – alex