Если у вас есть div
высоты 20px
, скажем, и вы хотите, чтобы фоновое изображение изменялось при наведении, используйте изображение с графикой без наведения и при наведении на нем, а наведите курсор насверху, а изображение при наведении внизу.Обе части должны быть высотой вашего div, в данном случае 20px.Затем сначала установите CSS background-position
на 0px 0px
(вверху слева).Это значение по умолчанию (без наведения).
Когда пользователь наводит курсор на div
, установите background-position
на 0px -20px
(увеличение на 20 пикселей).Это сместит фоновое изображение вверх на 20 пикселей, показывая нижнюю половину спрайта, который является парящей графикой.Когда мышь удаляется из div, спрайт возвращается в исходное положение.
CSS:
.hoverDiv /* Normal state */
{
background: url('images/img.png');
background-position: 0px 0px;
}
.hoverDiv:hover /* Hover state */
{
background-position: 0px -20px; /* Move background up by 20px, hiding the top image */
}
Если у вас есть div
издругой высоты, просто измените биты 20px
с высотой div.
Если ваши спрайты расположены рядом друг с другом, а не друг над другом, переместите ось X, используя background-position: -20px 0px;
вместо0px -20px;
.Конечно, вы также можете перемещать фон положительно.
Надеюсь, это поможет,
Джеймс