• ベストアンサー

背景画像がちらつく原因は?

a:hover のとき、背景画像を変更してjavascriptを使用せずマウスオーバー処理を行う方法がありますよね。簡単に書くと下記のようになります。 <a href="***">テキスト</a> a { background:url(aaa.gif); } a:hover { background:url(bbb.gif); } ローカル環境ではうまく表示されるのですが、アップロードすると一瞬真っ白になってから背景画像が変わります。これはなぜでしょうか。 IE6使用(Windows)です。 MacIEやNetscapeだと、ぜんぜん問題ありませんでした。IE特有の問題なのか、私のPC環境によるものかはっきりさせたいと思うので、わかる方、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

#1です。失礼しました。IEではbackground-positionを変える方式でもチラつきますね。 ツール→ インターネットオプション→ インターネット一時ファイルの設定ボタン→ 「ページを表示するごとに確認する」以外を選ぶ。 この設定さえすればどちらの方式でもチラつかなくなるようです。 最初の一回目のチラつきを抑えるには やはりbackground-positionを変える方式にするか、 #2の方の回答のように画像を先読みするスクリプトが有効かも。試してませんが。 (MM_preloadImagesって関数はDWを使ってないなら中身を自前で用意しなきゃいけないけど)

partita
質問者

お礼

>最初の一回目のチラつきを抑えるには 1回目くらいはチラつきあってもいいだろうと思ってます。画像先読みも考えてました。 >「ページを表示するごとに確認する」以外を選ぶ。 これでうまくいきました。ありがとうございました。

その他の回答 (2)

  • webcom
  • ベストアンサー率67% (19/28)
回答No.2

画像aaa.gifからbbb.gifへの切り替え命令を受けてから bbb.gifを読みに行くために表示までの僅かのタイムラグが 発生する事で起ます、ページを読み込む前に <body>タグで先読みすれば瞬時に切り替わります。 下記のように<body>タグを書いてください。 <body onLoad="MM_preloadImages('aaa.gif','bbb.gif')">

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

画像の読み込み(サーバへのアクセス)が起こっているのかな? backgroundのurlの変更ではなくpositionを変える方法にしてみてはどうですか?→参考URL

参考URL:
http://www.mushline.com/junky/2003/111523.shtml
partita
質問者

補足

positionを変更する方法も試してはいるのですが、タイムラグが発生してしまいます。 しかもIE6だけ(-_-;)