Категория > Изображения > Сделать, чтобы картинка менялась при наведении на нее курсора мыши - «Изображения»
Сделать, чтобы картинка менялась при наведении на нее курсора мыши - «Изображения»25-03-2016, 15:40. Автор: Administrator |
||||||||||||||
ЗадачаЗаменить одну картинку на другую при наведении на неё курсора мыши. РешениеСмена одной картинки на другую при наведении на неё курсора мыши называется эффектом перекатывания. Обычно для создания эффекта перекатывания применяется javascript, но в большинстве случаев вполне достаточно и CSS. Псевдокласс :hoverВначале разберём, как делается собственно сам эффект. Для этой цели используется псевдокласс :hover, он добавляется к желаемому селектору. Этот псевдокласс определяет стиль элемента, когда на него наводится курсор мыши, что нам как раз и требуется. Сразу отметим, что в браузере Internet Explorer версии 6 и ниже :hover работает только со ссылками, тогда как другие браузеры понимают :hover и для других элементов. Так что для универсальности придётся помещать изображение внутрь контейнера <a>. Сам рисунок добавляется и меняется с помощью стилевого свойства background. Алгоритм действий следующий.
На рис. 1 приведены два изображения: исходное (рис. 1а) и замещающее (рис. 1б). а б
Рис. 1. Картинки для создания эффекта перекатывания Остаётся собрать весь код воедино, как показано в примере 1. Чтобы ссылка не вела на какой-то определенный файл, что в данном случае излишне, добавим «заглушку» в виде символа решетки (#) к атрибуту href тега <a>. Пример 1. Использование псевдокласса :hover HTML5CSS 2.1IECrOpSaFx
Приведённый способ хотя и прост в реализации, но имеет определённый недостаток. Поскольку второй рисунок загружается только при наведении курсора на ссылку, то отображение картинки происходит с некоторой паузой. Для устранения этой задержки можно использовать не два изображения, а лишь одно. Эффект перекатывания с одним рисункомКазалось бы имеется противоречие, ведь эффект перекатывания состоит в замене одного рисунка на другой, как же тогда обойтись одной картинкой? На самом деле изображений будет два (рис. 2), но храниться они будут в одном графическом файле.
Рис. 2. Изображение с двумя картинками Смена одного рисунка на другой происходит сдвигом изображения по вертикали за счёт использования универсального свойства background или background-position, как показано в примере 2. Пример 2. Изменение положения рисунка HTML5CSS 2.1IECrOpSaFx
Для селектора A устанавливается фоновое изображение через свойство background, ширина (width) совпадает с рисунком, а высота (свойство height) равна половине высоты изображения. В итоге первоначально должна отображаться зеленая вкладка целиком. При наведении на ссылку фон смещается вверх на половину высоты картинки (40 пикселов) с помощью background-position и становится видна оранжевая вкладка. Перейти обратно к новости |