CSS: кэш изображений состояния наведения
Когда мы определяем состояние наведения чего-либо CSS... и на состояние наведения мы меняем background:url('image path');
будет ли предварительно загружено это изображение, будет ли оно загружаться при первом наведении на элемент... если это так, то как его предварительно загрузить... я знаю javascript для предварительной загрузки изображений... это будет работать...
4 ответа
Если вы пытаетесь не загружать изображения, находящиеся в состоянии наведения, только на те, на которых они находятся, вместо предварительной загрузки, то почему бы не создать спрайты, содержащие как обычные, так и наведенные изображения? Таким образом, вы можете быть уверены, что все ваши изображения состояния при наведении уже будут загружены, и в то же время сбросить накладные расходы для всех запросов. Единственное, что вам нужно будет сделать, это установить значение background-position
приписывать.
Что касается вашего первого вопроса, я полагаю, что лучший способ найти ответ - использовать два больших изображения (пара обоев подойдет) и протестировать их самостоятельно, хотя я подозреваю, что изображения будут загружаться только тогда, когда мышь находится над исходное изображение, потому что это когда код выполняется.
Надеюсь это поможет!
Если у тебя есть div
высоты 20px
скажем, и вы хотите, чтобы фоновое изображение изменялось при наведении, используйте изображение с графикой без наведения и при наведении на него, с наведением вверху и с наведением внизу. Обе части должны быть высотой вашего div, в данном случае, 20px. Затем установите свой CSS background-position
первым 0px 0px
(верхний левый). Это по умолчанию (без наведения).
Когда пользователь наводит курсор на div
, установить background-position
в 0px -20px
(20 пикселей вверх). Это сместит фоновое изображение вверх на 20 пикселей, показывая нижнюю половину спрайта, который является парящей графикой. Когда мышь удаляется из div, спрайт возвращается в исходное положение.
CSS:
.hoverDiv / * Нормальное состояние * / { background: url ('images / img.png'); background-position: 0px 0px; } .hoverDiv: hover / * Состояние наведения */ { background-position: 0px -20px; /* Переместить фон на 20 пикселей вверх, скрывая верхнее изображение */ }
Если у тебя есть div
разной высоты, просто измените 20px
биты с высотой дел.
Если ваши спрайты расположены рядом друг с другом, а не друг над другом, переместите ось X, используя background-position: -20px 0px;
вместо 0px -20px;
, Конечно, вы также можете перемещать фон положительно.
Надеюсь это поможет,
Джеймс
Лучше всего использовать CSS Sprites. Спрайт-лист - это большое изображение с множеством изображений, которое будет использоваться на вашем сайте. В чем выгода? Ну, это означает, что для загрузки всех ваших изображений отправляется только один http-запрос. Поэтому загрузка сайта немного быстрее.
Это будет действительно хорошо работать с эффектом парения!
Это намного проще в использовании и простой код. Не как JavaScript, с грязным и ужасным кодом. Это очень легко учиться. Основано на положении изображения в спрайте. Вот полезное руководство по Flowdev. Вот пример на W3Schools