Создать эффект наведения | Mapbox GL JS
Создание эффекта наведения | Картбокс GL JS | MapboxAll docschevron-rightMapbox GL JSchevron-rightarrow-leftExampleschevron-rightСоздание эффекта наведения
Используйте события и состояния объектов для создания эффекта наведения для каждого объекта.
Создать эффект наведения
Карты изображений CSS — Flickr-подобная техника?0001 Карты изображений CSS — метод, похожий на Flickr?
Перейти к примеру
Опубликована альтернатива картам CSS, состоящим только из изображений. Если вы ищете
более простой способ создания карт изображений, включающих одно изображение, вы можете
заинтересован в чтении Карты изображений CSS, Redux
Ниже приведен пример карты изображения, полностью созданной с использованием CSS и XHTML. Хотя я добавил поддержку для Javascript (названия элементов просто отображаются под изображением), я отключил его в этом примере — Я столкнулся с небольшой проблемой, когда JS включен, а CSS отключен (подробнее ниже).
Первоначальная идея пришла из блога я прочитал в блоге Джины Траппини, Scribbling.net. Ее пример был сделан хорошо, но я хотел чтобы попытаться сделать то же самое (или подобное), используя только CSS.
Затем я нашел ссылку на сайт The Daily Kryogenix (через сообщение Джины), которая привела к карте изображений, в которой использовался более легкий DHTML, и использовался тег
для отображения заметок о точке доступа.
Тем не менее, несколько зависит от Javascript/DHTML.
В конце концов я решил воспользоваться услугами Дуга Боумена. Техника раздвижных дверей в сочетании с
список определений (
).
Техника раздвижных дверей позволяет вам содержать все ваши эффекты ролловера изображения в одном файле изображения,
и используйте свойство CSS background-position
для «сдвига» изображения в любом
направление. Добавив эффект :hover
в свой CSS (в данном случае в
, содержащемся внутри тега
), вы можете переместить изображение в нужное положение.
Я создал карту изображений в Photoshop. Как вы можете видеть на этом изображении, карта
состоит из 3 копий одного и того же изображения, каждая из которых имеет разные отметки. Верх ( 1 из 3 ) просто отмечает
горячие точки с номерами, а также средние и нижние изображения ( 2 и 3 из 3 ) содержат ролловер
эффекты (белая прозрачность). Вам может быть интересно, почему эффект опрокидывания разделен на две части.
отдельные изображения. Причина разделения связана с перекрытием соседних элементов (например, монитора,
блокнот и дискету на столе).
По сути, это работает путем помещения заголовка элемента в термин определения
тег (
) вашего списка, за которым следует описание в
тег определения-описания (
). Затем CSS скрывает термин-определение
(что действительно используется, когда CSS отключен), а также определение-описание (отображается при наведении якоря) и
отображает описание определения (в данном случае описание точек доступа, которые вы выбрали для
ваша карта изображения), а также абсолютно позиционирует и отображает описание при наведении курсора на точку доступа.
(также определено в CSS).
Код также изящно деградирует. Тег
, отображающий несопоставленную версию карты изображения, скрыт.
с помощью CSS. Для тех, у кого отключен CSS, сопоставленная версия изображения (изображение из 3 частей) не отображается, так как оно является частью
background
Свойство CSS. Вместо этого будет отображаться неотображенная версия вместе со списком определений без стиля. Если у вас есть
получил расширение Web Developer для Firefox,
идите вперед и отключите стили. Вы получите лучшее представление о деградации.
Пример кода показан ниже (полный код CSS и XHTML см. в исходном коде):
РекламаCSS:
dd#monitorDef{верхняя часть: 65px; слева: 114 пикселей; } dd#monitorDef a{ position: absolute; ширина: 73 пикселя; высота: 69 пикселей; текстовое оформление: нет; } dd#monitorDef a span{ display: none; } dd#monitorDef a:hover{ position: absolute; фон: прозрачный URL (office.jpg) -109px -317px без повторов; верх: -10px; слева: -5px; } dd#monitorDef a: диапазон наведения { дисплей: блок; отступ текста: 0; вертикальное выравнивание: сверху; цвет: #000; цвет фона: #F4F4F4; вес шрифта: полужирный; положение: абсолютное; граница: 1px сплошная #BCBCBC; низ: 100%; маржа: 0; отступ: 5px; ширина: 250%; }
HTML:
<дл> <дт>1.Монитор
Рабочий пример можно посмотреть ниже (изображение ниже взято из The Daily Kryogenix): p>
Реклама- 1. Монитор
- Вот мой 17-дюймовый монитор. Хотел бы я иметь ЖК-дисплей!
- 2. Телефон
- Эта штука когда-нибудь перестанет звонить?
- 3. Корпус ПК
- Это моя сумасшедшая коробка с Linux! Должен любить этот Linux…
- 4.
IBM ThinkPad
- Вот мой ноутбук с Linux. Происходит какое-то сумасшедшее кодирование.
- 5. Внешний дисковод для гибких дисков
- Дисковод. Древний… Я знаю!
Хотя это может быть не самое «идеальное» решение, оно, безусловно, расширяет примеры вышеперечисленное. Мне очень понравилась идея Джины, поэтому я попытался расширить ее. К сожалению, с текущими ограничениями CSS (а также некоторых браузеров) я не смог полностью воспроизвести точная функциональность примера Джины.
Вот пример, в котором используются как CSS, так и Javascript. Одна проблема, с которой я столкнулся, заключается в том, что CSS отключен, но Javascript включен. Что-то странное происходит со списком определений. Если вы знаете, как это исправить, дайте мне знать. Я бы хотел, чтобы это заработало.
Мне удалось наткнуться на еще одну попытку создания карты изображения на основе CSS, которая выглядит действительно великолепно. К сожалению,
из-за ограничений IE (в частности, с поддержкой только эффекта :hover
для тега
),
он не совместим с разными браузерами (пока!).