Прокрутка изображения HTML - изображение не полностью загружено перед прокруткой?
Автор вопроса: Pauly DeeОтветов: 5
У меня есть изображение (вверху слева как домашняя ссылка), и я использую CSS: hover, чтобы изменить изображение при наведении курсора.
Проблема в том, что для загрузки изображения требуется время, когда я его первый раз переворачиваю. Там есть временное пустое пространство, и вы видите, что изображение постепенно загружается. Это занимает около секунды, но это раздражает.
Как исправить это, чтобы переход был плавным? Есть ли способ предварительно загрузить изображение?
возможный дубликат Каков наилучший способ предварительной загрузки несколько изображений в JavaScript? -- И оценка приемлемости низкая. ;-\ Brad Christie 03.01.2011
<a href="link.html">
<!-- Remove this img-tag if you don't have a 'nohover' background -->
<img alt="image" src="images/image.png" class="nohover" />
<img alt="imagehover" src="images/image.png" class="hover" />
</a>
И CSS:
img.nohover {
граница:0
}
img.hover {
граница:0;
дисплей: нет
}
а: наведите img.hover {
дисплей: встроенный
}
а: наведите курсор img.nohover {
дисплей: нет
}
Ответ 2 · рейтинг 4 · David says reinstate Monica
Есть два варианта, которые я могу придумать, навскидку:
css спрайты изображений или
размещение изображения :hover в скрытом div другом месте страницы.
1, спрайты
Для CSS Sprite используйте одно фоновое изображение для домашней ссылки и просто измените его положение на :hover:
Я обнаружил, что метод, который действительно хорошо работает для ролловеров, - это использование спрайтов CSS, то есть использование изображения, которое содержит как исходную, так и ролловерную версии изображения. Таким образом, обе версии загружаются одновременно, и переход между ними - это всего лишь вопрос изменения стиля background-position.
Ответ 4 · рейтинг 1 · Kobi Hari
Один из способов сделать это - добавить на свою страницу невидимое изображение с тем же URL-адресом. Таким образом, добавляя следующее в начало тела документа, вы фактически даете указание браузеру загрузить это изображение как можно скорее.
Хотя этот тег остается частью вашего документа, он не отображается и даже не отображается из-за настроек "display:none". Вы даже можете прослушать его событие загрузки и полностью удалить тег из DOM после его загрузки, чтобы не допустить попадания "мусора" в документ. Как только изображение загружается в память, оно автоматически повторно используется каждый раз, когда вы обращаетесь к одному и тому же URL-адресу, поэтому, как только вы установите источник другого изображения на тот же URL-адрес, оно будет загружено из памяти.
Надеюсь, это поможет, Коби
Ответ 5 · grivescorbett
Поместите изображение в div со стилем, установленным на { height: 0; overflow: hidden; }, это должно заставить браузер предварительно загрузить изображение.