CSS hover эффекты — для картинок, кнопок, при наведении на ссылки, блоки и др.
Очень часто на сайтах вы могли встречать изменение оформления ссылок или кнопок при наведении. Реализовать задачу позволяет специальный псевдокласс :hover в CSS. Сегодня рассмотрим некоторые приемы верстки позволяющие сделать эту фишку, а ниже опубликуем список наиболее интересных из них (с краткими описаниями/пояснениеми). Все варианты разделим на:
Данные группы весьма условны, т.к. многие примеры пересекаются и являются универсальными, то есть могут встречаться при оформлении разных объектов.
Hover эффект в CSS стилях добавляется справа от элемента следующим образом:
Чаще всего механизм применяется именно для ссылок дабы изменить их цвет или добавить/убрать подчеркивание. Однако он может быть задан и другим блокам, кнопкам, текстам или использоваться при создании горизонтального выпадающего меню.
Кстати, при задании стилей ссылок также дополнительно могут использоваться селекторы :link — для не посещенных еще страниц, :visited — тех, где вы уже были + :active определяет активный сейчас адрес. Важно размещать hover эффект в CSS после :link и :visited, если они существуют.
Перейдем от теории к практике. Ниже представлен список полезных материалов и сниппетов — переходите по ссылкам дабы просмотреть исходники.
Hover эффекты кнопок и ссылок
Как мы уже говорили выше, это самая популярная категория объектов на сайте, где встречается подобный прием. Вот вам несколько вариантов по теме.
Простые примеры для кнопок
В данной статье приведены 8 базовых способов как можно оригинальным образом обыграть динамические hover эффект при наведении: добавление иконки, создания прозрачного фона, 3D преобразование, наклон и т.п. Все коды достаточно простые, вот один из них:
Необычный градиентный в кнопке
Здесь при наведении появляется яркий цветной градиент, который следует за передвижением курсора. В реализации используются CSS переменные, а также скрипт определения позиции мышки. Результат выглядит это достаточно оригинально. Описание метода ищите тут.
Sullivan Buttons
Фишка в том, что при наведении на разные кнопки кроме изменения цвета фона запускается также небольшая анимация с иконками (причем у каждой своя).
CSS Icons on Hover
Подборка из 5ти простых вариантов реализации задачи. Во всех случаях задействованы дополнительные иконки, которые появляются справа/слева от текста либо заменяют его.
Button Hover Effects
По сравнению с прошлым примером эти 12 функций срабатывания выглядят куда интереснее: как визуально, так и в плане кода. Не обошлось без JS.
Nav Hovers
Несколько фишек, которые позволяют сделать более необычные подчеркивания ссылок на CSS нежели с базовым свойством text-decoration. Фон кнопки дополнительно заполняется разными визуальными эффектами.
Info on Hover
Функциональность всплывающих подсказок сейчас поддерживается во всех браузерах, но вы можете доработать ее под свои нужды. В текущем примере срабатывание псевдокласса происходит для тега dfn, смотрится стильно. Код достаточно компактный HTML + CSS.
Mana Button
Один из самых оригинальных вариантов hover эффекта в блоках — при наведении выполняется словно заполнение его жидкостью. В реализации используется CSS, HTML и SVG. В определенной тематике сайтов данный сниппет однозначно будет находкой.
Hover эффекты для изображений
15 базовых приемов
Не смотря на то, что статья была опубликована достаточно давно методы корректно работают и сейчас. Здесь, наверное, собраны все возможные типовые преобразования для графики: несколько видов зума, повороты, размытие, ч/б, прозрачность, фильтры, сияние и др. Очень полезный материал.
Красивые hover эффекты изображений
Подборка из 30 приятных и плавных действий при наведении на картинку. За счет простых визуальных манипуляций в виде зума, добавления линий создается хороший комплексное впечатление. Местами увеличивается заголовок и «подтягивается» краткое описание. Отличный вариант для портфолио.
Barberpole Hover Animation
Не сложная на первый взгляд анимация, которая в итоге смотрится очень классно и нестандартно.
CSS hover эффекты с определением направления
Отличная подборка сниппетов и кодов по теме находится в статье с css-tricks.com. Все эти примеры объединяет тот факт, что в процессе работы определяется местоположение и направление движения курсора. Это, в свою очередь, позволяет создавать достаточно оригинальные реакции при наведении на элементы страницы:
Во многих сложных решениях Javascript и jQuery для hover эффектов позволяют значительно разнообразить и улучшить результат.
Direction Aware Hover Goodness
Direction Aware Tiles using clip-path Pure CSS
Остальные фишки ищите в оригинальной статье.
Animatism
В этой разработке более 100 простых способов «анимации» изображений или объектов при наведении. С помощью данных функций сможете реализовать разное появление кнопок, заголовков, текстов, социальных иконок и т.п. Есть варианты с изменением отображения картинок, накладками полупрозрачного фона.
Caption Hover Effects
По ссылке находится 7 CSS3 hover эффектов заголовков — когда при наведении на изображение, пользователь увидит информационный блок с тайтлом, кратким описанием и ссылкой для перехода. Нельзя сказать, что примеры очень оригинальные, но они однозначно помогут разнообразить статичный контентный проект.
CSS Hover библиотеки
Hover.css
Проект под незамысловатым названием Hover.css содержит коллекцию CSS3 эффектов для ссылок, кнопок, блоков и т.п. Можете использовать готовый код и/или добавлять в него свои модификации. Здесь много интересного: 2D/3D преобразования, работа с фоном и рамками, тени, иконки. Решение доступно в CSS, LESS и Sass форматах.
Imagehover.css
Еще одна библиотека задающая hover эффекты картинкам — в бесплатной версии найдете 44 варианта преобразований (премиальный набор содержит их в 5 раз больше). Тут также поддерживаются LESS и SCSS, весит это дело лишь 19кб. На сайте имеется страница с демонстрацией всех работающих примеров. Предлагается много уникальных фишек, которые не встречались выше.
iHover
В проекте iHover более 30 разных приемов для круглых и квадратных по формату объектов. Все они достаточно оригинальные, простых «одноэлементных» действий в виде обычного зума/вылетания практически нет. Реализована задача на чистом CSS3 + HTML (плюс Scss файлы включены). Отличная совместимость с Bootstrap 3, есть документация.
Итого. Надеемся эти css hover эффекты при наведении на картинки, блоки, ссылки и другие элементы страницы помогли вам разобраться в данной теме. Самые удачные, на ваш, взгляд решения можете внедрить в своих сайтах — будь то подключение полноценной библиотеки или просто интеграция небольшого варианта кода.
Если знаете еще какие-то интересные фишки и сниппеты, присылайте URL’ы на них в комментариях. И мы в будущем дополним статью.
Со сложными примерами, конечно, мало что понятно, но вот про хувер эффект теперь буду точно знать.
Марина, нужно начинать с малого:)
Полезное чтиво для новичков однозначно!
Некоторые примеры, конечно, нереально крутые.. вряд ли когда-то смогу такое повторить, хотя я так вебмастер-любитель скорее
Марат, люди, которые делают такие «заготовки», работают во фронтенде не один год, так что это нормально (как для профи).
Мне как новичку очень нужная тут информация! Благодарю.
Спасибо за библиотеки, а то своей фантазии уже не хватает.
Hover-эффект
Hover-эффект – это технология веб-анимации, благодаря которой элементы сайта изменяют свой вид при наведении на них курсора или клике по ним.
Ховеры включают в себя множество разнообразных эффектов: изменение цвета, всплывающие подсказки и иные подписи, увеличение/смещение/трансформация/ротация объектов, плавные переходы и т.д.
Hover-эффекты способны сделать интерфейс сайта гораздо более ярким, оригинальным и привлекающим внимание посетителей. Очень часто ховерами оснащают кнопки ссылок, после чего они изменяют/инвертируют цвет, становятся прозрачными или увеличиваются в размерах при наведении курсора.
Hover-эффекты добавляют веб-дизайну интерактивности, но также могут сделать его более функциональным и удобным для пользователей. Нередко при помощи ховеров оформляют галереи изображений (для каталога товаров, портфолио и т.д.) или другого контента. По умолчанию все объекты в галерее представлены в виде миниатюр, которые увеличиваются до полноразмерного формата, если навести на них курсор мыши.
Hover-эффекты можно создавать как вручную (используя возможности языков HTML/CSS), так и при помощи встроенных инструментов популярных конструкторах сайтов: Wix, Tilda и других.
Настроить интеграцию без программистов ApiX-Drive
Статьи о маркетинге, автоматизации и интеграциях в нашем Блоге
Состояние hover: как должна вести себя ссылка при наведении
Данное рассуждение явилось разросшимся комментом на публикацию dezmasterdezmaster, опубликовавшему сегодня статью под заголовком «Ссылки при наведении курсора: нужна ли реакция?». Честно говоря, меня давно мучают схожие вопросы (= И вот, наконец, удалось немного понаводить порядок в своей голове.
Основной смысл всего мною сказанного: сила реакции ссылки на курсор мыши уменьшает время прицеливания (точно также как и размер ссылки, и ее расстояние от курсора), а значит уменьшает время между нашим желанием и его реализацией. Однако, вместе с тем, слишком сильная реакция может угнетает наши органы чувств и вызывать раздражение.
В итоге, контекст, в который помещена ссылка, определяет ту степень контрастности состояний ссылки, которую нам следует применять. Выделяются следующие контексты: ссылка среди картинок, в тексте, среди ссылок, в меню, в повторе, в публиковании.
Издержки прицеливания
Наведение курсора на ссылку — это очевидные издержки труда, лежащие между нашим желанием и его реализацией. Чем раньше мы понимаем, что мышь нацелена, и ссылка готова к клику, тем меньше энергии мы тратим на само прицеливание, и тем полнее наше переживание удовлетворения.
В работу по прицеливанию входит не просто перемещение курсора по плоскости, но и усилие, затрачиваемое на осознание того, что все сделано, как надо. Это можно почувствовать, попробовав сначала попасть издалека в какую-нибудь большую ссылку, например логотип сайта, а потом — с меньшего расстояния — в обычную сслыку в тексте.
Время, истраченное на осознание того факта, что мы все сделали верно, может оказаться куда более значительным, чем время по физическому перемещению курсора мыши. На время это оказывает влияние не только размер ссылки, ее расстояние от курсора мыши и отличие от остального контента — но и, не в последнюю очередь, динамическая реакция ссылки при наведении.
Чем отчетливее ссылка, и чем она ярче среагирует на наведение, тем быстрее мы сообразим, что нацеливание завершено и работа закончена.
Помимо чисто технического прицеливания пользователь вынужден сталкиваться и с другими проблемами. Ведь любой клик — это принятие определенного решения. Для принятия решения нужно понимать, какие элементы страницы за что ответственны и снизить риск неправильного их использования до минимума. А любая неуверенность в точности понимания смысла — опять же, расходует дополнительное время.
В таких случаях дополнительная подсветка ссылок может помочь снизить пользовательские риски. Чем контрастнее состояние ссылки при наведении, тем более подчеркивается важность и серьезность последствий, которые последуют вслед за кликом. И наоборот.
Контраст и контекст
Однако, у большой контрастности есть и обратная сторона: если ссылка будет меняться слишком сильно, она может в результате быстрее истощить наши органы чувств и вызвать законное раздражение. Особенно если учесть, что порой мы касаемся ссылок случайно, следуя курсором к какой-то совсем другой цели.
Значит универсального решения быть не может, нужно искать золотую середину: сделать реакцию ссылки довольно отчетливой, но в то же самое время не переборщить. Говоря по-другому, мы должны правильно подобрать конраст между активным и неактивным состоянием ссылки. Конраст же этот сильно завязан на окружающем ссылку контексте.
По умолчанию, при наведении на ссылку, курсор мыши приобретает форму указательного пальца. Это реакция, сама по себе создающая уже какой-то конраст. Вопрос в том, насколько он достаточен?
Ссылка среди картинок
Так, если ссылка находится не в тексте, а среди объектов, реагирующих на скольжение мыши дефолтным курсором-стрелкой (картинки, заголовки с большими отступами), то видимо простое изменение курсора на указательный палец будет недостаточным.
Указательный палец не сильно отличается от дефолтной стрелки: примерно одинаковые размеры, черный пиксельный контур, белая заливка. При быстром перемещении курсора можно и не заметить трансформации одного в другое: особенно учитывая, что мы не следим глазами за курсором, а фокусируем взгляд на том, что лежит под ним.
Если нам приходится переводить фокус с контента на курсор — чтобы понять, изменил ли он свое состояние — мы тратим дополнительную энергию. Оптимально бы было вообще не фокусировать взгляд на мыши, всегда смотреть сквозь.
Вывод: для ссылок из указанного контекста следует усилить контраст, изменяя состояние самих ссылок при наведении.
Ссылка в тексте
Ситуация выглядит совсем иначе для ссылок, помещенных в текст. Курсор над текстом совсем другой природы, формы и размера, нежели курсор над ссылкой. Отчетливо видно, что контур руки как бы распахивается, разворачивается из свернутого состояния.
Поэтому для ссылок в тексте можно отказаться от дополнительного усиления контраста состояний.
Ссылка среди ссылок
Часто много ссылок сосредоточено в одном и том же месте, например, в облаке тегов. В этом случае, при перемещении по ссылкам мы не будем замечать изменения курсора: он всегда будет оставаться в форме указательного пальца.
Очевидно, что скученные вместе ссылки требуют увеличения контрастности своих состояний дополнительными анимациями цвета, подчеркивания, или размера при наведении.
Ссылки в меню
В ссылки, далеко стоящие от основного места кликов, тяжело попасть, плюс скользнуть по ним случайно тоже практически невозможно. Примером подобных ссылок служат всевозможные элементы меню.
Для таких ссылок логичнее сделать разницу состояний более контрастной. Кроме того, элементы меню должны показать пользователю, что он не просто открывает еще одну страницу интернета, а следует некой структуре, правильная ориентация в которой позволит ему либо получить, либо не получить то, что он хочет.
Ссылки в повторе
Ссылки, повторяющие свою структуру и взаимное расположение от элемента к элементу страницы — как, например, управляющие ссылки постов или комментов, вызывают привычку пользователя в пользовании собою. Вдобавок, такие ссылки часто используются. С одной стороны, пользователь уже умеет более точно рассчитывать свои движения, а с другой, он бы не хотел испытывать постоянного прессинга на свои органы чувств.
Для таких ссылок лучше не усиливать контраст состояний.
Ховеры бывают разные
Когда у нас в eLama компонентов в библиотеке стало достаточно много, мы заметили, что ховеры не имеют системы: меняется цвет заливки, цвет рамки, цвет текста, появляется тень и т.д.
Мы делали это не со зла, в отдельных проектах так работало лучше, но глядя на интерфейс в целом, стало понятно, что это проблема.
Даже у схожих компонентов ховеры были разные
Не всё бывает тем, чем кажется
При разработке интерфейсов мы опираемся на принцип — то, что ты делаешь должно работать так, как того будет ожидать пользователь. Если пользователь видит перед собой кнопку, то он будет ожидать от нее поведение кнопки, а значит она должна и вести себя ожидаемо.
Например, у нас в библиотеке есть ссылка и кнопка, визуально похожая на ссылку. Из-за того, что в их поведении при ховере не было сильного различия, мог возникать вопрос, что произойдет при нажатии — перекинет на другую страницу, или действие будет на текущей странице. Поначалу даже были случаи, когда разработчики использовали кнопку, как ссылку, руководствуясь тем, что она выглядит и ведет себя при ховере похоже на ссылку.
Оказалось, не для всех может быть очевидно, что это два разных компонента
Какие ховеры вообще бывают
1. Изменение фона (появление подложки или изменение ее цвета)
Так это выглядит в Notion
2. Изменение бордера (появление или смена цвета)
Так себя ведет кнопка фильтров в Jira
3. Изменение цвета иконки или текста
Пример с Хабра
4. Изменение местоположения
Можно увидеть на главной странице Яндекса
5. Добавление эффектов (тени, градиенты и т.д.)
Кнопка из Google календаря
6. Сложные ховеры (изменение размера, формы и т.д.)
Необычная кнопка с сайта nyc.awwwards.com
На самом деле, типов ховеров может быть и больше, здесь перечислены, наверно, самые основные, и я думаю в комментариях вы сможете упомянуть еще какие-то.
Наводим порядок
Button, SelectList, Table, Chip, Lable, Switch, Pagination, навигация в левом меню
Какой тип решили использовать: Изменение фона
Кнопки в этой группе оказались самыми проблемными — у них оказалось сразу 3 типа ховера.
Мы решили сделать появление подложки единого цвета у кнопок, которые изначально не имеют никакого фона. Кнопки визуально похожие на ссылки получают важное отличие от ссылок при ховере.
Смену цвета у иконки мы оставили для активного состояния кнопки (например: tooltip или кнопка фильтров) и для того случая, когда зона наведения больше стандартного размера кнопки (например, у нас это кнопка закрытия toast)
Пример активной кнопки
Rating
Какой тип решили использовать: Изменение фона и изменение цвета иконки
В этом случае мы не стали менять тот ховер, какой был. Кнопка рейтинга похожа на обычной кнопку-иконку, у нее так же есть активное состояние, но эмоциональное значение у нее больше. Поэтому, чтобы усилить его, мы используем сразу два типа ховера.
RadioLine, CheckLine и Tab
Какой тип решили использовать: Изменение цвета текста
Приводим ховер в RadioLine, CheckLine к виду текущего ховера у табов — изменяем только цвет текста при наведении.
Убиваем двух зайцев разом: избавляемся от типа ховера с появлением обводки и улучшаем анимацию у RadioLine — в варианте с обводкой при перемещении синей подложки иногда заметно исчезающую обводку, что выглядит некрасиво.
Косяк в анимации в слоууууумо
Checkbox
Какой тип решили использовать: Изменение фона и бордера
Тут все просто: у компонента есть два состояния — выбранный и не выбранный — и соответственно два типа ховера — меняется фон и меняется бордер.
Input, MultiInput, TextArea, Select, Radiobutton
Какой тип решили использовать: Изменение бордера
Ховер на сложные элементы
У сложных элементов вроде карточки задачи на канбан-доске мы решили делать анимацию добавления эффекта при ховере — появление тени. Мы выбирали между тенью и появлением обводки, но обводку отмели, потому что обводка может частично теряться в элементе, в котором есть темные части по краям.
Но есть исключения
InputFile
У этого компонента есть два типа ховера — обычное наведение мышкой и перетаскивание файлов. Появление подложки при перетаскивании файлов это привычное поведение для такой кнопки, поэтому для обычного ховера оставляем смену цвета у иконки, чтобы эти два типа оставались разграниченными между собой.
Link Button
Не добавляем появление подложки, чтобы оставить визуальное отличие от кнопки при наведении.
Про анимацию ховеров
Практически у всех наших компонентов у ховера есть плавная анимация, но она нужна не всегда.
Без такой анимации можно обойтись в боковом меню, выпадающем списке и таблице. В том, что имеет структуру строк. Плавная анимация в таких случаях может выглядеть очень тягучей, если сделать ее слишком медленной, потому что она будет не поспевать за курсором. А если сделать ее слишком быстрой, то будет излишнее мерцание.
Но может быть и частичная анимация, например, так мы сделали у пагинации — при наведении на номер страницы подложка появляется плавно, но когда курсор уходит с нее, подложка исчезает мгновенно. Это было сделано, чтобы избежать ситуации, когда проводишь курсор по цифрам быстро и одновременно видны несколько подложек, потому что новые появляются, когда предыдущие еще не успели исчезнуть.
Уже неоднократно мы делали акцент на важности взаимодействия пользователя с сайтом. Кроме правильного расположения блоков, кнопок и продуманного пользовательского пути есть еще много фишек. И одна из них – ховер-эффект.
Ховер-эффект – это когда при наведении мышки на объект он реагирует: меняется цвет кнопки, появляется подсветка, картинка немного движется или увеличивается, всплывает информационная надпись, изменяется цвет ссылки и т.д. Вариантов ховера очень много, они зависят от фантазии и мастерства разработчика.
Зачем это нужно
Ховер-эффект – вещь достаточно простая, но именно такие мелочи и делают сайт живым и привлекательным. Это очень полезное внедрение, которое помогает пользователю сориентироваться. Ведь если при наведении мышки элемент откликается, то становится ясно, что ты на верном пути. Если это кнопка, то эффект дает понять, что ты по ней попал и можно нажимать. Если это таблица, то в ней могут подсвечиваться столбцы для более удобного просмотра.
Еще один плюс ховер-эффекта – это возможность не перенасыщать сайт информацией, сделать его лаконичным, но информативным. Например, тебе нужно сделать страницу с рекламой аренды офисных помещений. Ты размещаешь там схематичное изображение здания. При наведении мышкой на этажи, они подсвечиваются, показывая более подробную планировку. Там же может появляться информация о площади, цене и прочие подробности. И вот, твоя страница выглядит аккуратно, там нет ничего лишнего. Посетитель читает только те сведения, которые ему интересны, не перегружая мозг лишней информацией. Удобно, стильно, наглядно.
Как использовать ховер
Необязательно делать эффекты наведения функциональными. Это также игровые моменты и пасхалки, которые добавляют сайту динамики и помогают завоевать внимание и доверие пользователя.
Согласись, достаточно весело залипать на сайте с картинками котиков, если они следят глазами за твоим курсором. Сделай что-то оригинальное, это понравится твоей аудитории и заказчику. Сайты с ховером всегда конвертят лучше, чем без него – сделай два идентичных варианта с ховер-эффектами и без них, проведи АВ-тесты и убедись самостоятельно в этом.
Здесь также важно придерживаться принципа умеренности – слишком много анимации, агрессивные эффекты и резкие переходы будут раздражать. Используй плавность, ненавязчивость. Если это цвет, то не слишком кричащий, если движение, то с небольшой амплитудой.
Рассмотрим 10 самых распространенных и простых в реализации ховер-эффектов.
Как научиться
Стандартные ховер-эффекты делаются при помощи внедрения переходов через CSS3. Элемент трансформируется в переходах, с помощью которых меняется его стиль. Задается параметр изменений при наведении курсора. Для мобильных устройств нужно отдельное ПО для реализации этой функции, если вместо курсора там используется сенсор.
Для большинства перечисленных выше эффектов не требуются углубленные знания программирования и будет достаточно основ верстки и владения CSS3. Этому ты научишься на нашем бесплатном курсе «Веб-верстальщик: начало». Если с версткой ты уже знаком и хочешь делать более сложные и оригинальные ховер-эффекты, то нужно углубиться в программирование и применение плагинов. Изучай Джаву на онлайн-коучинге «JavaScript: новый уровень» – набор в новую группу уже открыт!










