Моргание фонового изображения в IE

Иногда при вёрстке меню приходится задавать фоновое изображение для тега A. При наведении курсора мыши на такой элемент в IE происходит моргание фоновой картинки, по причине того, что браузер каждый раз пытается загрузить её с сервера.

Чтобы избавиться от этого неприятного эфекта, добавьте в начало страницы следующий код, заставляющий включить кэширование фоновых картинок:


<script>
    document.execCommand("BackgroundImageCache", false, true);
</script>

Либо тоже самое, но через css:


body {
    filter: expression(document.execCommand("BackgroundImageCache", false, true));
}

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

  • сау

    не работает!!! В IE7 как был косяк, так и остался

    • Пример в студию!

  • Вообще, есть более рациональное решение.
    Есть такое понятие, как css-спрайты. Берете две картинки, которые меняются фоном, объединяете в одну, а потом через css просто позиционируете этот фон.
    1. Не важно, включено кэширование или нет — загрузятся сразу «обе» картинки.
    2. За счет объединения — уменьшается число загружаемых файлов, что снижает число запросов на сервер, что уменьшает время загрузки.
    Например, на много быстрее будет загружаться 1 файл размеров 50Кб, чем 10 файлов по 5Кб.
    3. Это будет работать, независимо от поддержки скриптов у пользователя и прочего. Просто и на 100% кроссбраузерно.

    • Да, но от моргания в IE6 это никак не спасает! Хоть 10 спрайтов создайте. Этому подвержены многие IE6 Windows XP SPI и некоторые индивиды SP2. Решение есть — использовать CSS прелоадер (скрыйтый слой, на фон которого кладем нужную картинку).

  • Задайте пропадающее изображение фоном для родительского элемента, сдивнув его за область видимости — один из знаменитых багов ИЕ

  • Добрый день!
    Ситуация следующая:
    есть команда, — ‘‘ …
    И, вы удивитесь, у меня проблемы … Дело в том, что в двух слоях одна под другой находятся два img разного тона. При наведении мыши на ссылку, верхняя img становится невидимой, чем достигается эффект нажатия клавиши … Но при этом … При наведении курсоры мыши происходит дрожание изображения: верхняя img, с неизвестной частотой, становится то видимой, то невидимой … Что бы это значило и как от этого избавиться ??? Пробовал вашу подсказку, — не выходит ни в Explorer’e, ни в Opera. Спасибо.