AIと戦って、あなたの人生のリスク診断 >>

a:hover のとき、背景画像を変更してjavascriptを使用せずマウスオーバー処理を行う方法がありますよね。簡単に書くと下記のようになります。

<a href="***">テキスト</a>
a { background:url(aaa.gif); }
a:hover { background:url(bbb.gif); }

ローカル環境ではうまく表示されるのですが、アップロードすると一瞬真っ白になってから背景画像が変わります。これはなぜでしょうか。

IE6使用(Windows)です。
MacIEやNetscapeだと、ぜんぜん問題ありませんでした。IE特有の問題なのか、私のPC環境によるものかはっきりさせたいと思うので、わかる方、宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

#1です。

失礼しました。IEではbackground-positionを変える方式でもチラつきますね。

ツール→
インターネットオプション→
インターネット一時ファイルの設定ボタン→
「ページを表示するごとに確認する」以外を選ぶ。

この設定さえすればどちらの方式でもチラつかなくなるようです。

最初の一回目のチラつきを抑えるには
やはりbackground-positionを変える方式にするか、
#2の方の回答のように画像を先読みするスクリプトが有効かも。試してませんが。
(MM_preloadImagesって関数はDWを使ってないなら中身を自前で用意しなきゃいけないけど)
    • good
    • 0
この回答へのお礼

>最初の一回目のチラつきを抑えるには

1回目くらいはチラつきあってもいいだろうと思ってます。画像先読みも考えてました。

>「ページを表示するごとに確認する」以外を選ぶ。
これでうまくいきました。ありがとうございました。

お礼日時:2005/08/03 19:36

画像aaa.gifからbbb.gifへの切り替え命令を受けてから


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

画像の読み込み(サーバへのアクセス)が起こっているのかな?



backgroundのurlの変更ではなくpositionを変える方法にしてみてはどうですか?→参考URL

参考URL:http://www.mushline.com/junky/2003/111523.shtml

この回答への補足

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

補足日時:2005/08/03 11:58
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qcssで「下よせ」ってどうやっていますか?

フロートのレフト、ライトはいいとして、

あるボックス要素内(A)に異なるボックス要素(B)をいれます。
この(B)を(A)の一番そこにはりつかせたい時にどうすれば
最もよいのでしょうか?

いいアイデアをご教授ください。

Aベストアンサー

こんなのはどうかな?

position: absolute;
bottom: 0px;

Qlocation.hrefでページ切替時の白画面を何とかしたい

location.hrefでページ切替時の白画面を何とかしたい

上下フレームの構成でWEBページを作成しています。
上フレームは目次で、下フレームがメイン画面となっております。
上フレームのボタンを押下して下フレームの表示を
parent.bottompage.location.href="URL" で変更させています。

下フレームのページを切り替える際に、
一瞬だけ読み込み中のための真っ白な画面が表示されるのですが、
この白い画面を表示させないでほしいと言われ、対応に困っています。
(画面の点滅が目に優しくないとか。。。)

遷移先の画面の読込が終わるまで元の画面を表示し続ける方法を試し、探していましたが
良い方法が見つかりませんでした。
上記の方法、それ以外の方法、もしくは誤魔化す方法でもいいので
対応策をご存知の方がいらしたら、ご教授頂ければと存じます。

なお、イントラネット内でのみ使用する目的で、外部公開はしません。
客先の事情もあり、推奨ブラウザはIE6~としております。

以上、宜しくお願いいたします。

Aベストアンサー

未検証のアイデアのみですが…

◇フレームのままで行うなら…
全体の構成に、読み込み用のフレーム(非表示)を用意しておいて、そちらに読込みんで、ロード完了後にフレームの表示位置を入れ替える。(片方の高さを0、display:noneにし、もう片方は反対に)
ボーダーを可変にしてあると、ユーザが掴めちゃうのでどうするかとかいろいろ工夫の余地はありそうだけど…

あと、IEはonloadが正しくないとかいうのもあったような…
(フレームでも同様かどうかは調べていません)
 http://www.keyframe.co.jp/blog/archives/418


◇一端キャッシュさせればOKであるなら…
フレーム操作のような面倒なことをしなくても、上フレームの表示画面外にインナーフレームでも用意しておいて、一度対象ページを読み込んでから改めて当該フレームに読み込ませる。(キャッシュされているから速い)


◇もっと大胆に、別ウインドウを自分の下(見えないように)に新しい構成で表示させてから、自分を閉じる…
と思ったけれど、自分を閉じる時にアラームが出てしまうのと、別ウインドウを開いてフォーカスを移すと、一瞬フリッカーがおきちゃうみたいなのでダメでした。


◇あるいは、今風にajaxでロードして内容を入れ替えるとか
重たい画像とかがあったりすると、レイアウトに時間がのかかるのかも…
(よくわからんが、少なくとも白い画面は出なくてもすむでしょう)


◇他に思いつくのは…
>(画面の点滅が目に優しくないとか。。。)
白い画面って「about:blank」の時と同じ背景色ではなかろうかと想像しますが、クライアント側のデフォルト背景色をグレーなどに設定しちゃうとか…
クライアント全部に設定しないとならないので面倒なのと、背景色の指定のないページをみるとグレーの背景になっちゃうけど…
ということで、こりゃ無理かな?

未検証のアイデアのみですが…

◇フレームのままで行うなら…
全体の構成に、読み込み用のフレーム(非表示)を用意しておいて、そちらに読込みんで、ロード完了後にフレームの表示位置を入れ替える。(片方の高さを0、display:noneにし、もう片方は反対に)
ボーダーを可変にしてあると、ユーザが掴めちゃうのでどうするかとかいろいろ工夫の余地はありそうだけど…

あと、IEはonloadが正しくないとかいうのもあったような…
(フレームでも同様かどうかは調べていません)
 http://www.keyframe.co.jp/blog/archiv...続きを読む

Q