1

Web ページに画像があり、ユーザーがその上にカーソルを合わせると、別の画像が表示されます。表示された画像にカーソルを合わせると、ちらつきます。

それがなぜなのか誰にも分かりますか?

トニー

更新: ホバリングしても最初の画像は消えず、別の (小さい) 画像が左上隅に表示されます。その小さな画像の上を移動すると、ちらつきが現れます。

サイトの画像はギャラリーの一部であるため、php 変数であり、ユーザーが画像のリストから選択すると読み込まれます。したがって、一方を他方に埋め込むことは非常に困難です。

4

4 に答える 4

3

ブラウザが新しい画像を取得しているためです。最良の解決策は、両方の画像を 1 つに組み込み、純粋に CSS を使用して の背景位置を変更する:hoverか、(IE6 および非アンカー要素の場合) JS で背景位置を変更することです。

于 2009-10-06T18:31:51.007 に答える
1

IEで?:hoverIE は、(CSSまたは Javascript イベントによって)動的に読み込まれる画像をキャッシュしないことで有名です。CSS スプライトを使用できます (基本的に、1 つの画像ファイルを使用して両方の画像を表示し、配置を使用してどちらか一方を表示します。チュートリアル、 Mike Robinsonによってリンクされています)、または画像のプリロードを使用できます。

var preloadImg = document.createElement('img');
preloadImg.src = 'path/to/image';

編集:および他のブラウザは、最初のロード時に同じことを行います. IE は、すべてのスイッチでそれを実行し続ける可能性があります。

于 2009-10-06T18:32:59.070 に答える
1

私があなたを正しく理解していれば、マウスオーバーイベントが発生するたびに画像の src を置き換える可能性があります。そのため、画像が置き換えられた場合でも、イベントが発生し、画像自体が置き換えられるため、ちらつきが発生する可能性があります。

于 2009-10-06T18:37:38.813 に答える
0

おそらくIEを使っていると思います。これは、一部のバージョンでキャッシュを実装する方法のバグです。適切なキャッシュ ヘッダーを送信するように Web サーバーを構成するか、 CSS スプライトを使用して修正します。後者をお勧めします。これは、HTTP リクエストが少なく、JS がなくてもプリロードが機能することを意味します。

于 2009-10-06T18:37:00.343 に答える