Как делают такой хавер эффект?
Не могу понять как делают подобные хаверы, даже не знаю с какой стороны подступиться, одним только box-shadow тут явно не обойтись.. Добавлять в разметку парочку дивов единственный вариант? P.S.изображение с пинтереста, так что посмотреть код не получится)
Отслеживать
109k 23 23 золотых знака 112 112 серебряных знаков 374 374 бронзовых знака
задан 14 июл 2021 в 16:53
476 2 2 серебряных знака 10 10 бронзовых знаков
Вангую изменения репутации от тех кто ждал когда GIFка прогрузится 🙂
14 июл 2021 в 16:56
Лол, я думал я один ждал эффектов 🙂
14 июл 2021 в 16:59
@ Как делают подобные хаверы @ пикча с пинтреста — а кто сказал, что их делают? xD
14 июл 2021 в 17:04
А так, да, единственный вариант — это добавлять обертку над картинкой.
14 июл 2021 в 17:05
данный вопрос в виде картинки следует закрыть, потому что он бесполезен для базы знаний (тот, у кого возникнет подобный вопрос, не сможет найти данный вопрос и ответы к нему)
14 июл 2021 в 20:50
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
.container
В качестве нескольких анимированных теней используются прямоугольники, которые изначально расположены под картинкой и при hover вращаются в разные стороны.
Центр вращения прямоугольников вычисляется с помощью метода JS getBBox():
Update
Вариант с добавлением тени с SVG фильтрами
.container
Последовательное появление теней
Каждая новая тень появляется с задержкой после окончания предыдущей анимации
:hover
CSS псевдокласс :hover срабатывает, когда пользователь наводит на элемент мышью, но не обязательно активирует его. Этот стиль может переопределяться другими относящимися к ссылкам псевдоклассами, такими как :link , :visited и :active , появляющимися в соответствующем порядке. Чтобы стилизировать ссылки должным образом, вставьте правило :hover после правил :link и :visited до :active , как определено LVHA-порядком: :link — :visited — :hover — :active .
Псевдокласс :hover может применяться к любому псевдоэлементу. Экспериментальная возможность
Браузеры, такие как Firefox, Internet Explorer, Safari, Opera или Chrome, применяют соответствующий стиль, когда курсор (указатель мыши) наводится на элемент.
Примечание: на сенсорных экранах :hover проблемный или не работает. В зависимости от браузера, псевдокласс :hover может никогда не сработать, или сработать на некоторое время после нажатия на элемента, или может продолжать действовать даже остаться после того, как пользователь коснулся элемента до нажатия на другой элемент. Так как сенсорные устройства очень распространены, то веб-разработчикам очень важно не иметь контент, доступный только при наведении, так как такой контент неудобно или невозможно использовать на таких устройствах.
Примеры
:link:hover outline: dotted red; > .foo:hover background: gold; >
Выпадающее меню
С псевдоклассом :hover вы можете создавать сложные каскадные алгоритмы. Эта техника часто используется, например, чтобы создать выпадающие меню на чистом CSS (только на CSS, без использования JavaScript). Сущность этой техники — создание правил, типа следующего:
div.menu-bar ul ul display: none; > div.menu-bar li:hover > ul display: block; >
применим к HTML структуре типа следующей:
div class="menu-bar"> ul> li> a href="example.html">Менюa> ul> li> a href="example.html">Ссылкаa> li> li> a class="menu-nav" href="example.html">Подменюa> ul> li> a class="menu-nav" href="example.html">Подменюa> ul> li>a href="example.html">Ссылкаa>li> li>a href="example.html">Ссылкаa>li> li>a href="example.html">Ссылкаa>li> li>a href="example.html">Ссылкаa>li> ul> li> li>a href="example.html">Ссылкаa>li> ul> li> ul> li> ul> div>
Галерея полноразмерных изображений и превью
Вы можете использовать псевдокласс :hover , чтобы создать галерею изображений с полноразмерными картинками, показываемыми при наведении на них мыши. Посмотрите это демо.
Примечание: Для аналогичного эффекта, но основанного на псевдоклассе :checked (применяется к скрытым радиокнопкам), смотрите это демо, взятое со страницы ru/CSS/:checked.
Спецификации
| Specification |
|---|
| HTML Standard # selector-hover |
| Selectors Level 4 # the-hover-pseudo |
Поддержка браузерами
BCD tables only load in the browser
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 7 авг. 2023 г. by MDN contributors.
Your blueprint for a better internet.
Hover-эффекты для изображений с помощью CSS
Самая распространенная функция hover-эффектов — это выделение ссылок или кнопок текста. Но есть и много других функций.
Hover-эффекты добавляют к веб-сайту элемент интерактивности. Они имеют сильный эффект, когда применяются к изображениям, а также имеют большое влияние на пользователя, так как эти эффекты помогают создать хорошо спроектированный веб-сайт.
Hover — это эффект при наведении курсора мыши на какой-нибудь элемент. Он часто используется для стилевого оформления, а также для удобства и простоты использования.
Здесь вы узнаете, как создать креативные hover-эффекты для изображений, используя только CSS.
1. Создайте HTML
- Добавьте тег с классом «image». Тег используется для указания независимого контента.
- Используйте тег , чтобы создать надпись или пояснение для контента внутри тега .
figure img src="https://images.unsplash.com/photo-1546146830-2cca9512c68e?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" /> W3docs
2. Добавьте CSS
- Установите max-width, min-width и max-height изображения.
- Установите position в relative.
- Установите overflow в hidden, чтобы контент был срезан и поместился в блок.
- Установите цвет для figcaption и выравнивание текста.
figure.image < position: relative; overflow: hidden; margin: 10px; min-width: 220px; max-width: 310px; max-height: 220px; width: 100%; background: #000000; color: #eeeeee; text-align: center; >
- Добавьте transition для класса image. Мы используем селектор * (asterisk), который выделяет все элементы документа.
figure.image * < -webkit-transition: all 0.3s ease-in-out; -moz-transition: all 0.3s ease-in-out; -o-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; >
- Установите max-width изображения в 100%.
- Установите степень прозрачности элемента.
figure.image img < max-width: 100%; position: relative; opacity: 0.6; >
Нашим следующим шагом будет добавление стиля к h3.
- Установите background и position для h3.
- Задайте свойство transform. Оно указывает 2D или 3D трансформацию элемента. Данное свойство позволяет вращать, масштабировать, сдвигать элемент.
- Задайте text-transform со значением uppercase для установления символов верхнего регистра.
- Задайте font-weight. Здесь мы установили значение в 400.
figure.image h3 < position: absolute; left: 50px; right: 50px; display: inline-block; background: #000; -webkit-transform: skew(-5deg) rotate(-10deg) translate(0, -50%); -moz-transform: skew(-5deg) rotate(-10deg) translate(0, -50%); -ms-transform: skew(-5deg) rotate(-10deg) translate(0, -50%); -o-transform: skew(-5deg) rotate(-10deg) translate(0, -50%); transform: skew(-5deg) rotate(-10deg) translate(0, -50%); padding: 15px 5px; margin: 0; top: 50%; text-transform: uppercase; font-weight: 400; >
Теперь добавим стиль к псевдоэлементу :before , что является элементом сгенерированного контента. Он добавляет перед контентом элемент любого типа.
- Установите height и width элемента и задайте цвет.
- Установите transition в transition-duration (0.3).
- Укажите свойство transform . Поверните элемент на 110 градусов и переместите его по оси y на -50%.
figure.image:before < height: 130%; width: 130%; top: 0; left: 0; content: ''; background: #cccccc; position: absolute; -webkit-transition: all 0.3s ease-in-out; -moz-transition: all 0.3s ease-in-out; -o-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; -webkit-transform: rotate(110deg) translateY(-50%); -moz-transform: rotate(110deg) translateY(-50%); -ms-transform: rotate(110deg) translateY(-50%); -o-transform: rotate(110deg) translateY(-50%); transform: rotate(110deg) translateY(-50%); >
Следующим шагом установите hover-эффект для изображения, h3 и :before.
figure.image:hover img, figure.image.hover img < opacity: 1; -moz-transform:scale(1.1); -ms-transform: scale(1.1); -o-transform: scale(1.1); transform: scale(1.1); > figure.image:hover h3, figure.image.hover h3 < -moz-transform:skew(-10deg) rotate(-10deg) translate(-150%, -50%); -ms-transform: skew(-10deg) rotate(-10deg) translate(-150%, -50%); -o-transform: skew(-10deg) rotate(-10deg) translate(-150%, -50%); transform: skew(-10deg) rotate(-10deg) translate(-150%, -50%); > figure.image:hover:before, figure.image.hover:before < -moz-transform:rotate(110deg) translateY(-150%); -ms-transform: rotate(110deg) translateY(-150%); -o-transform: rotate(110deg) translateY(-150%); transform: rotate(110deg) translateY(-150%); >
И наконец, соединим все части нашего кода:
Пример
html> html> head> title>Заголовок документа title> style> figure.image < position: relative; overflow: hidden; margin: 10px; min-width: 220px; max-width: 310px; max-height: 220px; width: 100%; background: #000000; color: #eeeeee; text-align: center; > figure.image* < -webkit-transition: all 0.3s ease-in-out; -moz-transition: all 0.3s ease-in-out; -o-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; > figure.image img < max-width: 100%; position: relative; opacity: 0.6; > figure.image h3 < position: absolute; left: 50px; right: 50px; display: inline-block; background: #000; -webkit-transform: skew(-5deg) rotate(-10deg) translate(0, -50%); -moz-transform: skew(-5deg) rotate(-10deg) translate(0, -50%); -ms-transform: skew(-5deg) rotate(-10deg) translate(0, -50%); -o-transform: skew(-5deg) rotate(-10deg) translate(0, -50%); transform: skew(-5deg) rotate(-10deg) translate(0, -50%); padding: 15px 5px; margin: 0; top: 50%; text-transform: uppercase; font-weight: 400; > figure.image:before < height: 130%; width: 130%; top: 0; left: 0; content: ''; background: #cccccc; position: absolute; -webkit-transition: all 0.3s ease-in-out; -moz-transition: all 0.3s ease-in-out; -o-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; -webkit-transform: rotate(110deg) translateY(-50%); -moz-transform: rotate(110deg) translateY(-50%); -ms-transform: rotate(110deg) translateY(-50%); -o-transform: rotate(110deg) translateY(-50%); transform: rotate(110deg) translateY(-50%); > figure.image:hover img, figure.image.hover img < opacity: 1; -moz-transform:scale(1.1); -ms-transform: scale(1.1); -o-transform: scale(1.1); transform: scale(1.1); > figure.image:hover h3, figure.image.hover h3 < -moz-transform:skew(-10deg) rotate(-10deg) translate(-150%, -50%); -ms-transform: skew(-10deg) rotate(-10deg) translate(-150%, -50%); -o-transform: skew(-10deg) rotate(-10deg) translate(-150%, -50%); transform: skew(-10deg) rotate(-10deg) translate(-150%, -50%); > figure.image:hover:before, figure.image.hover:before < -moz-transform:rotate(110deg) translateY(-150%); -ms-transform: rotate(110deg) translateY(-150%); -o-transform: rotate(110deg) translateY(-150%); transform: rotate(110deg) translateY(-150%); > style> head> body> h2> hover-эффект h2> figure class="image"> img src="https://images.unsplash.com/photo-1546146830-2cca9512c68e?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="W3docs"/> figcaption> h3>W3docs h3> figcaption> body> html>
Рассмотрим другой пример трехмерной трансформации:
Пример
html> html> head> title>Заголовок документа title> style> .example < width: 250px; height: 250px; margin: 20px auto 40px auto; perspective: 1000px; > .example a < display: block; width: 100%; height: 100%; background: url("/uploads/media/default/0001/01/b408569013c0bb32b2afb0f0d45e93e982347951.jpeg"); background-size: cover; transform-style: preserve-3d; -webkit-transform: rotateX(80deg); -moz-transform: rotateX(80deg); -ms-transform: rotateX(80deg); -o-transform: rotateX(80deg); transform: rotateX(80deg); -webkit-transition: all 0.8s; -moz-transition: all 0.8s; -o-transition: all 0.8s; transition: all 0.8s; > .example:hover a < -webkit-transform: rotateX(10deg); -moz-transform: rotateX(10deg); -ms-transform: rotateX(10deg); -o-transform: rotateX(10deg); transform: rotateX(10deg); > .example a:after < content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 20px; background: #cccccc; -webkit-transform: rotateX(60deg); -moz-transform: rotateX(60deg); -ms-transform: rotateX(60deg); -o-transform: rotateX(60deg); transform: rotateX(60deg); transform-origin: bottom; > style> head> body> h2> hover-эффект h2> div class="example"> a href="#"> a> div> body> html>
CSS3 hover effects. Пошаговый туториал
При создании этого мануала, моей целью было взять три десятка различных эффектов, частью — довольно распространенных, частью — придуманных мной, разместить их от простых к более сложным, и на их примере показать новичкам, никогда не имевшим дело с CSS3 возможностями, как эти возможности работают и как их применить на практике. Именно по этой причине статья вышла подробная, пошаговая, мне было важно описать и разобрать каждую деталь.
Демо материалы лежат здесь.
Предупреждение: эффекты работают только в современных браузерах, поддерживающих возможности CSS3.
Подготовка к работе.
Итак, для того, чтобы создавать наши эффекты нам понадобится вот такая простая дефолтная html-структура:
Title is Here
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut.
View More 