Спрайтовое решение для события медленного перехода и 2 изображений

#html

#HTML

Вопрос:

Одна из кнопок на моем сайте медленно реагирует на включение, и я не уверен, почему это происходит.

http://davincispainting.com затем нажмите на верхнюю правую кнопку «Нажмите для быстрого подключения»

введите описание изображения здесь

 <div id='contact-form'>
    <a class="contact" href="#"></a>
</div>

a.contact {
background-image: url("/images/Home/RapidButton2.png");
display: block;
font-size: 11px;
text-align: center;
width: 165px;
height: 27px;
}

a.contact:hover {
background-image: url("/images/Home/RapidButtonHov2.png");
}
  

Комментарии:

1. В каком браузере вы это видите? Вы пробовали использовать другую графику? Я проверил сайт в Google Chrome и Firefox (оба в OS X) с приличным подключением к Интернету и вижу, что замечание неверно: onhover срабатывает просто отлично, без задержек.

Ответ №1:

Проблема может заключаться в том, что hover изображение должно быть загружено первым при первом наведении, что приводит к задержке (немного при медленных соединениях).

Попробуйте сделать это спрайтом. Т.е. объединить два изображения в одно изображение большего размера, где оба изображения сложены. используйте background-position свойство для сдвига большого изображения в соответствии с состоянием наведения.

как RapidButton-sprite.png становится:

пример спрайта

и css:

 a.contact {
  background-image: url("/images/Home/RapidButton-sprite.png");
  background-position:left bottom; // or 0px -27px;
  .................
}

a.contact:hover {
  background-position:left top; // or 0px 0px;
  .................
}
  

Хороший учебник можно найти здесь

Комментарии:

1. Имейте в виду, что я поменял порядок двух изображений, обычно вы, конечно, помещаете состояние по умолчанию поверх 😉 поэтому положение фона также должно быть изменено

2. Я попробовал этот подход, и, поскольку изображение при наведении не загружается, задержки при переходе нет.