Интересные эффекты анимации hover на CSS3. Девять простых примеров CSS3 анимации Ховер эффекты css3

Предупреждение: эффекты работают только в современных браузерах, поддерживающих возможности CSS3.

Подготовка к работе.

Итак, для того, чтобы создавать наши эффекты нам понадобится вот такая простая дефолтная html-структура :

Title is Here

View More


Для большей части эффектов она останется неизменна, но кое-где нам придется внести ряд изменений. У нас есть div-контейнер с классом.effect, внутри которого помещаем картинку и контейнер с классом.caption, содержащий заголовок, описание и, как в данном случае, кнопку “View More”. Разумеется, структуру менять можно, главное, тогда сделать соответствующие изменения и для CSS-кода.

Дефолтные css-стили для нашей структуры (опять же, в зависимости от того, какой мы будем рассматривать эффект, они будут различаться):

Effect { position: relative; width: 300px; height: 200px; overflow: hidden; } .effect img { width: 100%; height: 100%; } .effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; } .effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; } .effect .caption p { margin: 15px 0px; text-align: center; font-style: italic; padding: 0px 10px; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; }

Основы свойства transition. Эффекты #1.1-1.3

Эффект #1.1 заключается в том, что, при наведении мыши на изображение, сверху “выезжает” контейнер.caption с информацией.

Чтобы этого добиться, нужно, в первую очередь, переместить этот контейнер выше, за пределы контейнера с эффектом. Для этого мы изменим ему свойство top, и стили для блока теперь будут выглядеть так:

Effect .caption { position: absolute; top: -100%; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; }
Следующим шагом будет добавление к.caption свойства transition. transition показывает, какое именно свойство будет изменяться, насколько быстро, с какой задержкой.

Рассмотрим его поподробнее. Вот так должно будет выглядеть свойство transition для эффекта #1.1:

transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s;

Первое значение устанавливает имя стилевого свойства, которое будет отслеживаться для изменения. В данном случае мы выставили all - отслеживаться будут все свойства. Второе - отвечает за время, необходимое для анимации. Третье - за то, как в течение времени, заданного вторым свойством, будет распределяться скорость перехода: где замедлится, где ускорится. Так, например, в данном случае сначала анимация будет быстрее, к середине замедлится и ближе к концу выйдет на равномерную скорость. Четвертое значение определяет, начнется анимация с задержкой или нет. Если значение равно 0s - задержки нет.

Кроме того, для этого свойства нам надо будет добавить вендорные префиксы. необходимые для корректного отображения анимации в браузерах. Как это выглядит:

Webkit-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; - для Chrome и Safari
-o-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; - для Opera
-ms-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; - для IE
-moz-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; - для Firefox

Добавим и их:

Effect .caption { position: absolute; top: -100%; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; -o-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; -ms-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; -moz-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; }

В статье, для краткости, я буду опускать префиксы, но не забывайте добавлять их для таких свойств, как transition, transform и transform-origin. В коде примеров под кнопкой CSS (или в самих файлах) префиксы тоже есть.

Effect:hover .caption { top: 0px; }

Эффект #1.2 строится аналогично, только.caption “выезжает” справа налево. Для этого мы вносим незначительные изменения в стили.caption:

Effect .caption { position: absolute; top: 0px; left: 100%; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; -o-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; -ms-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; -moz-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; } .effect:hover .caption { left: 0px; }
А вот в эффекте #1.3 внесены небольшие усложнения. Так.caption движется, как в эффекте #1.1 сверху вниз, но одновременно ему навстречу снизу вверх выдвигается еще один блок.

Чтобы добиться такого эффекта, внесем изменения в html-структуру. Нам необходимо создать пустой div-контейнер с классом.overlay для блока, выезжающего снизу вверх:

Title is Here

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut.

View More

Внесем изменения в стили для.caption. Изменим его положение для выдвижения сверху вниз, уменьшим прозрачность вдвое, чтобы сохранить итоговое значение прозрачности фона (в конечном итоге, у нас будут накладываться друг на друга два блока), добавим z-index, чтобы показать, какой из двух блоков будет “выше” при наложении:

Effect .caption { position: absolute; top: -100%; left: 0px; background: rgba(0,0,0,0.35); width: 100%; height: 100%; color: #fff; transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; z-index: 10; }
Добавим стили для.overlay.

Effect .overlay { position: absolute; top: 100%; left: 0px; background: rgba(0,0,0,0.35); width: 100%; height: 100%; transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; z-index: 5; }
Осталось только определить конечную точку трансформаций: .caption опускается до top: 0px, а.overlay, наоборот, поднимается до этого же значения:
.effect:hover .caption, .effect:hover .overlay { top: 0px; }

Изменяем прозрачность. Добавляем движение отдельных элементов. Эффекты #2.1-#2.3

В эффекте #2.1 элементы выдвигаются из центра к краям. Воспользуемся базовой html-структурой, в которую, для создания этого эффекта, не понадобится вносить никаких изменений.

А вот в css-стили изменения внести понадобится. В первую очередь, необходимо сместить заголовок и кнопку в центр.caption, чтобы задать начальную точку для последующего перехода. Кроме того, необходимо добавить этим элементам свойство transition, поскольку сейчас именно они являются объектами анимирования:

Effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; position: relative; top: 62px; transition: all 0.3s linear 0s; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; position: relative; top: -58px; transition: all 0.3s linear 0s; }

Теперь, если мы зададим конечную точку анимации:

Effect:hover h4, .effect:hover a.btn { top: 0px; }

Мы получим не самый красивый результат. Полупрозрачная подложка никуда не делась, элементы кучкуются в центре и неэстетично оттуда разъезжаются. Поскольку, с помощью transition, можно изменять не только положение элемента, но и, например, его прозрачность, благодаря ей мы сможем скрыть и подложку, и элементы в центре до момента, пока не понадобится их подвинуть.

Добавляем прозрачность и transition к.caption:
.effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; opacity: 0; transition: all 0.5s linear 0s; }
Таким образом, сейчас.caption мы спрятали, и чуть позже настроим так, чтобы он появлялся только при наведении мыши. Необходимо добавить прозрачность и для всех элементов внутри.caption, и код для них будет выглядеть так:
.effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; position: relative; top: 62px; opacity: 0; transition: all 0.3s linear 0s; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; position: relative; top: -58px; opacity: 0; transition: all 0.3s linear 0s; } .effect .caption p { margin: 15px 0px; text-align: center; font-style: italic; padding: 0px 10px; opacity: 0; transition: all 0.3s linear 0s; }
Теперь на hover будет происходить следующее: прозрачность.caption и элементов внутри нее сменится с opacity: 0 на opacity: 1, одновременно с чем начнет меняться местоположение заголовка и кнопки:

Effect:hover h4, .effect:hover a.btn { top: 0px; opacity: 1; } .effect:hover .caption, .effect:hover p { opacity: 1; }
Эффекты #2.2 и #2.3 построены аналогичным образом, только для эффекта #2.2 заголовок и кнопку мы смещаем сверху вниз и снизу вверх соответственно, а для эффекта #2.3 справа налево и слева направо соответственно.

Изменения, которые необходимо внести в код эффекта #2.1, чтобы получить эффект #2.2 :

Effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; position: relative; top: -66px; opacity: 0; transition: all 0.3s linear 0s; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; position: relative; top: 66px; opacity: 0; transition: all 0.3s linear 0s; }
В остальном, все остается аналогичным.

Ну а чтобы из эффекта #2.1 получить эффект #2.3 , изменим следующее:
font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; position: relative; left: 300px; opacity: 0; transition: all 0.3s linear 0s; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; position: relative; left: -300px; opacity: 0; transition: all 0.3s linear 0s; } .effect:hover h4, .eff-2-3:hover a.btn { left: 0px; opacity: 1; }

Поговорим о transform и об увеличении/уменьшении элементов. Эффекты #3.1-#3.3

Эффект #3.1 строится на том, что, при наведении, появляются очень увеличенные элементы

,

И , постепенно уменьшающиеся до нормальных размеров.

Html-структуру оставляем базовой. Что касается изменений в таблице стилей, уменьшающимся элементам мы должны добавить свойство transform. Transform позволяет трансформировать элементы: вращать, менять им размеры, наклонять, перемещать, комбинировать несколько свойств для создания более сложных эффектов. Для этих эффектов мы разберем уменьшение/увеличение элементов.

Необходимое для такой трансформации значение свойства transform - scale(x,y), где значение x - изменение размеров объекта по горизонтали, а y - по вертикали соответственно. Если мы применим это свойство для

,

И , то получим вот что:

Effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; transform: scale(2); transition: all 0.3s linear 0s; }
Как видите, у значения scale в данном случае не два параметра, а один, и это означает, что и по горизонтали, и по вертикали наш элемент увеличен в два раза.

Effect .caption p { margin: 15px 0px; text-align: center; font-style: italic; padding: 0px 10px; transform: scale(2); transition: all 0.3s linear 0s; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; transform: scale(2); transition: all 0.3s linear 0s; }
Теперь на hover наша задача уменьшить эти элементы до их нормального размера, что мы и делаем, добавляя эти стили:

Effect:hover .caption h4, .effect:hover .caption p, .effect:hover .caption a.btn { transform: scale(1); }
Что касается.caption, как и в разборе эффектов #2.1-#2.3, мы выставляем ему opacity: 0 и очень маленькое время transition, чтобы появление подложки не отвлекало зрителя от основной анимации:

Effect .caption { position: absolute; top: 0; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; opacity: 0; transition: all 0.2s linear 0s; } .effect:hover .caption { opacity: 1; }
Эффект #3.2 строится аналогично предыдущему, с тем лишь исключением, что элементы не уменьшаются, а увеличиваются при наведении мыши. Выставим для них такое значение scale: 0.25, все прочие стили остаются аналогичны.

А вот эффект #3.3 - это комбинация из перемещения элементов и изменения их размеров. Как видим, элемент

Остается на своем месте и размеры не меняет, для него стили остаются стандартные. Что касается

и , наша задача - переместить их наверх и вниз соответственно и уменьшить в размерах:

Effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; position: relative; top: -100%; transform: scale(0.25); } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; position: relative; top: 100%; transform: scale(0.25); }
Теперь надо задать transition, но тут встает такой вопрос: элементы должны сначала - опуститься и лишь после - увеличиться в размерах, то есть, нужно задать transition для опускания элементов без задержки и transition с задержкой для увеличения.

Задать больше одного стилевого свойства для transition - просто: мы всего лишь перечисляем их через запятую, не забыв указать все параметры для каждого свойства:

transition: top 0.3s linear 0s, transform 0.3s linear 0.3s;

Добавим это правило к остальным стилевым правилам:

Effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; position: relative; top: -100%; transform: scale(0.25); transition: top 0.3s linear 0s, transform 0.3s linear 0.3s; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; position: relative; top: 100%; transform: scale(0.25); transition: top 0.3s linear 0s, transform 0.3s linear 0.3s; }
Задаем конечную точку трансформаций:

Effect:hover .caption h4, .effect:hover .caption a.btn { transform: scale(1); top: 0px; }
Осталось только скрыть.caption по образу и подобию двух предыдущих эффектов:

Effect .caption { position: absolute; top: 0; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; opacity: 0; transition: all 0.3s linear 0s; } .effect:hover .caption { opacity: 1; }

Крутим элементы: rotate. Задаем “точку вращения”. Эффекты #4.1-#4.4

Чтобы “крутить” элементы, свойству transform необходимо задать значение - rotate и его параметры. Какие параметры есть у значения rotate? Во-первых, ось вращения: X, Y или Z. Во-вторых, количество градусов, на которое будет повернут элемент. Так, например, если мы хотим повернуть элемент по оси Y на 30 градусов, выглядеть правило будет следующим образом:

transform: rotateY(30deg);

Эффекты #4.1-#4.3 построены на вращении элемента.caption вокруг каждой из трех осей, и начнем мы с эффекта #4.1 , в котором.caption вращается вокруг оси X. Вот только само по себе вращение не так уж зрелищно, поэтому мы совместим его с изменением размера элемента.

,

И элементов. Изменяться будут лишь стили для.caption, и, в первую очередь, мы добавим новый transform:

Effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: rotateX(0deg); transition: all 0.4s linear 0s; } .effect:hover .caption { transform: rotateX(360deg); }
Теперь при наведении мыши элемент крутанется на вышеобозначенное количество градусов. Но хотелось бы, чтобы он не только крутился, но и, в отсутствие hover, исчезал, а на hover не только вращался, но и “выплывал”. Для этого добавим еще один transform со значением scale. Чтобы добавить элементу два и более значений transform, не нужно писать правило дважды, мы просто ставим эти значения через пробел. И поступаем аналогично с hover-стилями:

Effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: rotateX(0deg) scale(0); transition: all 0.4s linear 0s; } .effect:hover .caption { transform: rotateX(360deg) scale(1); }
Теперь.caption не просто вращается вокруг оси, но и словно появляется из глубины картинки.

Эффект #4.2 строится полностью аналогично, только заменяем ось вращения на Y.

Эффект #4.3 строится, опять же, полностью аналогично. Поскольку rotateZ() полностью аналогична записи rotate(), мы просто меняем стили на:

Effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: rotate(0deg) scale(0); transition: all 0.4s linear 0s; } .effect:hover .caption { transform: rotate(360deg) scale(1); }
Эффект #4.4 сложнее. Он базируется не только на вращении и изменении размера, но еще и на изменении координат точки, вокруг которой совершается вращение, а также на усложненном значении параметра transition-timing-function свойства transition. Но начнем по порядку.

Суть в том, что вращение не может быть само по себе, оно всегда происходит относительно какой-либо точки. Дефолтные координаты этой точки - центр, то есть 50% 50%, но сейчас мы сменим их, чтобы изменить траекторию движения нашего.caption. Задаются координаты свойством transform-origin. Кроме того, давайте добавим transition со значением параметра transition-timing-function - linear:

Effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: rotate(0deg) scale(0); transition: all 1.1s linear 0s; } .effect:hover .caption { transform: rotate(360deg) scale(1); transform-origin: -10% -20%; }
Сейчас эффект выглядит, как очень медленное вращение.caption вокруг оси Z относительно очень смещенной точки вращения. Чтобы усложнить эффект, изменим значение transition-timing-function на cubic-bezier(0.68, -0.55, 0.27, 1.55), что даст нам очень ускоренный выход в анимацию, замедленную середину и небольшой возврат назад в конце. Вот так будет выглядеть окончательный код:

Effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: rotate(0deg) scale(0); transition: all 1.1s cubic-bezier(0.68, -0.55, 0.27, 1.55) 0s; } .effect:hover .caption { transform: rotate(360deg) scale(1); transform-origin: -10% -20%; }

Еще немного о scale и transform-origin. Эффекты #5.1-#5.4

Как я уже писала в разборе эффектов #3.1-#3.3, мы можем применять scale не только по двум осям одновременно, увеличивая/уменьшая элемент одновременно в длину и ширину, но и по одной оси. Так, например, в эффекте #5.1 мы видим, как.caption разворачивается из центра по горизонтали, но высота его при этом не меняется.

Для этого элемента html-структура и стили для

,

И остаются базовыми. Изменятся только стили для.caption, который нам надо уменьшить только по оси X:

Effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: scaleX(0); transition: all 0.4s linear 0s; }
И, чтобы произошло увеличение, на hover:

Effect:hover .caption { transform: scaleX(1); }
Эффект #5.2 строится аналогично, только.caption развернется по оси Y, в остальном стили останутся аналогичны предыдущему.

В эффекте #5.3 .caption тоже разворачивается по горизонтали, но не из центра, а от левого края. Чтобы подвинуть точку, от которой происходит переход, применим transform-origin, который, как видим, работает не только в связке с rotate:

Effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: scaleX(0); transform-origin: left center; transition: all 0.4s linear 0s; }
Таким образом, мы смещаем точку, от которой происходит переход, по горизонтали в крайнее левое положение, а по вертикали она так и остается в дефолтном положении - по центру. Прочие стили остаются аналогичными.

Эффект #5.4 аналогичен эффекту #5.3, здесь.caption разворачивается сверху вниз, от верхнего края:
.effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: scaleX(0); transform-origin: center top; transition: all 0.4s linear 0s; }
Точка смещена в крайнее верхнее положение, по горизонтали же - остается по центру. Прочие стили аналогичны.

Как еще можно использовать связку rotate и transform-origin. Эффекты #6.1-#6.3

В эффекте #6.1 при наведении мыши.caption проворачивается, как если бы был закреплен на невидимом гвоздике. Роль “гвоздика” выполняет transform-origin с заданными координатами, а поворот обеспечивает rotate.

Html-структура остается базовой, равно как и стили для

,

И . Изменяем только стили для.caption. Давайте, для начала, добавим rotate:

Effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: rotate(180deg); transition: all 0.4s cubic-bezier(0.4, 0, 1, 1) 0s; }
Теперь.caption оказывается просто повернут вверх ногами. Пусть на hover он будет возвращаться в исходное положение:
.effect:hover .caption { transform: rotate(0deg); }
Теперь, при наведении мыши, .caption просто прокручивается вокруг своей оси. Но, если мы изменим координаты точки, вокруг которой происходит переход, и, как в данном случае, перенесем ее наверх по вертикали таким образом:

Effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: rotate(180deg); transform-origin: center top; transition: all 0.4s cubic-bezier(0.4, 0, 1, 1) 0s; }
Получится следующее: .caption сместится наверх, как если бы мы ему дали top: -100%; потому что сместилась точка, относительно которой он вращается.

Теперь, если мы будем смещать координаты “точки перехода” и изменять направление вращение, то сможем получить различные вариации этого эффекта. Так, например, эффект #6.2 почти полностью аналогичен предыдущему, только transform-origin: center bottom; а направление вращения изменено на противоположное благодаря тому, что исходное значение стало таким transform: rotate(-180deg);

В эффекте #6.3 направление вращения остается таким же, как в #6.2, а “точка перехода” смещена на середину правой стороны контейнера: transform-origin: right center; В остальном, стили остаются теми же самыми.

Поговорим подробнее о delay. Эффекты #7.1-#7.3

Сейчас мы немного нарушим порядок разбора эффектов и начнем с эффекта #7.2, потом перейдем к #7.3, и лишь потом вернемся к #7.1 как к самому сложному из линейки.

Итак, эффект #7.2 : при наведении мыши сверху и снизу выезжают два контейнера.overlay и, когда смыкаются, сверху выезжает.caption.

Html-структура понадобится такая:


Как видите, у нас добавилось два.overlay-слоя, тех самых, что будут выезжать сверху и снизу.

Что касается стилей: для

,

И стили остаются дефолтные.

Теперь давайте рассмотрим стили для.overlay-контейнеров:

Effect .overlay { background: rgba(0,0,0,0.7); width: 100%; height: 50%; left: 0px; position: absolute; transition: all 0.15s linear 0s; } .effect .overlay-top { top: -100%; } .effect .overlay-bottom { top: 100%; }
.overlay-top мы убрали вверх, .overlay-bottom - соответственно, вниз, теперь нам нужно, чтобы при наведении мыши они съезжались. Поскольку каждый из них имеет высоту, равную 50% высоты родителя, сделать это просто:

Effect:hover .overlay-top { top: 0px; } .effect:hover .overlay-bottom { top: 50%; }
Теперь определим вид и поведение.caption, который у нас тоже спускается сверху, а значит, должен быть наверх помещен. Теперь, поскольку.caption появляется после.overlay, было бы логично, что у него будет проставлено значение параметра delay свойства transition:

Effect .caption { position: absolute; top: -100%; left: 0px; background: transparent; width: 100%; height: 100%; color: #fff; transition: all 0.2s linear 0.3s; } .effect:hover .caption { top: 0px; }
Давайте проверим, как это сработает. Какой выходит результат по шагам:

  1. Наводим мышь на.effect
  2. Выезжают.overlay
  3. Появляется.caption
  4. Снимаем hover
  5. .overlay возвращаются на свои места
  6. .caption, благодаря выставленному значению delay, возвращается на место на 0.3s позже, что совсем не входило в наши планы
Выходит, что delay, определенный для.caption, срабатывает, но не с тем результатом, с каким бы нам этого хотелось. Что тут можно сделать?

Мы можем задавать delay не только в стилях самого элемента, но и в стилях его поведения на hover, и в этом будет заключаться наш трюк. Как должны себя вести элементы на hover? Сначала выезжают.overlay и только потом.caption, это значит, что в состоянии hover у.overlay задержка равняется 0s, а у.caption - например, 0.3s

Effect:hover .caption { top: 0px; transition-delay: 0.3s; } .effect:hover .overlay { transition-delay: 0s; }
Но, когда мы снимаем hover, элементы возвращаются к своему обычному поведению, при котором сначала, без всякой задержки, на место возвращается.caption, а затем - .overlay, и, значит, у первого мы должны задержку отменить, а вторым - добавить:

Effect .caption { position: absolute; top: -100%; left: 0px; background: transparent; width: 100%; height: 100%; color: #fff; transition: all 0.2s linear 0s; } .effect .overlay { background: rgba(0,0,0,0.7); width: 100%; height: 50%; left: 0px; position: absolute; transition: all 0.15s linear 0.3s; }
Вот теперь очередность будет соблюдена, и элементы будут двигаться в правильном порядке.

Эффект #7.3 почти аналогичен предыдущему, разница лишь в стилях для.overlay:

Effect .overlay { background: rgba(0,0,0,0.7); width: 50%; height: 100%; position: absolute; transition: all 0.15s linear 0.4s; } .effect .overlay-top { left: 0; top: -100%; } .effect .overlay-bottom { right: 0; top: 100%; } .effect:hover .overlay { top: 0; transition-delay: 0s; }
С эффектом #7.1 придется повозиться чуть дольше. Как и #7.3, он отличается от #7.2 только положением и стилями для.overlay, выезжающими сверху справа и снизу слева двумя треугольниками.

Но, конечно, выезжать у нас будут не треугольники, а прямоугольники. Вот общие стили для обоих.overlay:

Effect .overlay { background: rgba(0,0,0,0.7); width: 408px; height: 170px; position: absolute; transform: rotate(33deg); transition: all 0.15s linear 0.3s; }
Вот что важно: ширина и высота прямоугольников должна индивидуально подгоняться под размер вашего контейнера с эффектом, равно как и координаты, на которые мы их поместим (и на которые потом передвинем). Что мы делаем: берем наши прямоугольники, разворачиваем на 33 градуса каждый, верхний смещаем к верхнему правому углу контейнера.effect, нижний - к нижнему левому соответственно, а на hover смещаем их до соприкосновения по линии диагонали прямоугольника контейнера.effect:

Effect .overlay-top { top: -158px; left: 142px; } .effect:hover .overlay-top { top: -50px; left: -1px; } .effect .overlay-bottom { top: 192px; left: -244px; } .effect:hover .overlay-bottom { top: 79px; left: -111px; } .effect:hover .overlay { transition-delay: 0s; }
Прочие стили идентичны стилям предыдущих эффектов.

Применяем полученные навыки на практике. Больше трюков! Эффекты #8.1-#10.3

Изюминку этих эффектов составляет bounce-эффект, строящийся на значении параметра transition-timing-function свойства transition для.overlay.

Html-структура такова:

Title is Here

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut.

View More

В данном случае.overlay понадобится всего один. Вот такие понадобятся для него стили:

Effect .overlay { background: rgba(0,0,0,0.7); width: 100%; height: 100%; position: absolute; top: 0px; left: 0px; transform: scale(0); transition: all 0.4s cubic-bezier(0, 1.31, 1, -0.29) 0.4s; }
Ну а на hover увеличиваем его:

Effect:hover .overlay { transform: scale(1); transition-delay: 0s; }
Чтобы.caption не отвлекал, все, что мы пропишем для него - это изменение прозрачности:

Effect .caption { position: absolute; top: 0px; left: 0px; background: transparent; width: 100%; height: 100%; color: #fff; opacity: 0; transition: all 0.2s linear 0s; } .effect:hover .caption { opacity: 1; transition-delay: 0.6s; }
Прочие стили остаются дефолтными.

Эффекты #8.2-#8.3 строятся аналогично. Вся разница лишь в том, что в #8.2 используется scaleX(), а в #8.3 - scaleY(), о которых я подробно рассказывала при разборе эффектов #3.1-#3.3

Эффект #9.1 строится на том, что два.overlay появляются по очереди из центра, а следом за ними с небольшим bounce-эффектом выезжает.caption.

Что касается html-структуры, она такова:

Title is Here

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut.

View More

Стили для

,

И остаются неизменными. Рассмотрим стили для.overlay:

Effect .overlay { background: rgba(0,0,0,0.35); width: 100%; height: 100%; position: absolute; top: 0px; left: 0px; transform: scale(0); }
Поскольку.overlay-1 и.overlay-2 вступают в разное время, transition им дадим каждому - свой:

Effect .overlay-1 { transition: all 0.2s linear 0.3s; } .effect .overlay-2 { transition: all 0.2s linear 0.6s; } .effect:hover .overlay { transform: scale(1); }
Соответственно, и при снятии hover исчезают они с задержкой относительно друг друга. Поэтому для.overlay-1 мы проставим delay: 0s, а для.overlay-2 - delay: 0.2s (подробнее о влиянии delay на очередность появления и исчезновения элементов я писала при разборе эффектов #7.1-#7.3)

Effect:hover .overlay-1 { transition-delay: 0s; } .effect:hover .overlay-2 { transition-delay: 0.2s; }
Осталось рассмотреть стили.caption:

Effect .caption { position: absolute; top: 0px; left: 100%; background: transparent; width: 100%; height: 100%; color: #fff; transition: all 0.4s cubic-bezier(0.05, -0.24, 0, 1.33) 0s; } .effect:hover .caption { left: 0px; transition-delay: 0.4s; }
Эффект #9.2 строится аналогично, только.overlay круглые и.caption, как и.overlay, появляется из центра:

Effect .caption { position: absolute; top: 0px; left: 0px; background: transparent; width: 100%; height: 100%; color: #fff; transition: all 0.3s linear 0s; transform: scale(0); } .effect:hover .caption { transform: scale(1); transition-delay: 0.4s; } .effect .overlay { background: rgba(0,0,0,0.35); width: 2px; height: 2px; position: absolute; top: 50%; left: 50%; border-radius: 50%; transform: scale(0); } .effect .overlay-1 { transition: all 0.5s linear 0.3s; } .effect .overlay-2 { transition: all 0.5s linear 0.6s; }
Прочие стили аналогичны стилям эффекта #9.1

Эффект #9.3 строится следующим образом. Нужна такая html-структура:

Title is Here

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut.

View More


Чтобы добиться такого вида для.overlay, мы дадим ему постепенно увеличивающуюся box-shadow:

Effect .overlay { position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px; transition: all 0.3s linear 0.3s; } .effect:hover .overlay { box-shadow: inset 0px 0px 25px 100px rgba(0,0,0,0.7); }
Изначальное положение для.caption будет: разворот на 180 градусов и opacity: 0. На hover разворачиваем.caption, который, в процессе поворота, становится непрозрачным:

Effect .caption { position: absolute; top: 0px; left: 0px; background: transparent; width: 100%; height: 100%; color: #fff; opacity: 0; transform: rotate(180deg); transition: all 0.3s linear 0s; } .effect:hover .caption { opacity: 1; transform: rotate(0deg); transition-delay: 0.5s; }
Все остальные стили - дефолтные.

Эффект #10.1 состоит из пяти меняющих размер “лесенкой” элементов.overlay и, словно выныривающего, .caption.

Html-структура нужна такая:

Title is Here

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut.

View More

Сначала построим “лесенку”. Каждый.overlay отличается от другого своим местоположением и значением параметра delay:

Effect .overlay { background: rgba(0,0,0,0.7); width: 20%; height: 100%; position: absolute; top: 100%; } .effect .overlay-1 { left: 0; transition: all 0.15s linear 0.2s; } .effect .overlay-2 { left: 20%; transition: all 0.15s linear 0.25s; } .effect .overlay-3 { left: 40%; transition: all 0.15s linear 0.3s; } .effect .overlay-4 { left: 60%; transition: all 0.15s linear 0.35s; } .effect .overlay-5 { left: 80%; transition: all 0.15s linear 0.4s; }
На hover их delay тоже будут различаться:

Effect:hover .overlay { top: 0px; } .effect:hover .overlay-1 { transition-delay: 0s; } .effect:hover .overlay-2 { transition-delay: 0.1s; } .effect:hover .overlay-3 { transition-delay: 0.15s; } .effect:hover .overlay-4 { transition-delay: 0.2s; } .effect:hover .overlay-5 { transition-delay: 0.25s; }
Самое интересное и сложное здесь - .caption. Вот базовые стили для него:

Effect .caption { position: absolute; top: 0px; left: 0px; background: transparent; width: 100%; height: 100%; color: #fff; transition: all 0.3s linear 0s; }
Теперь нам нужно задать ему положение до начала анимации. Во-первых, развернуть, ведь, когда мы наводим мышь, мы видим, как.caption проворачивается на некоторый угол. Зададим и transform-origin, определяющий точку, вокруг которой будет проходить трансформация. Добавим transform: rotate(-50deg); и transform-origin: 0% 100%; . Следующим шагом будет смещение по вертикали и по горизонтали, чтобы чуть позже обеспечить “выныривание”. Смещать будем с помощью transform: translate(x,y), который сдвигает элемент по оси X и Y соответственно. Наша задача - сдвинуть.caption почти в самый угол по горизонтали и примерно на две трети за пределы контейнера.effects по вертикали:

Effect .caption { position: absolute; top: 0px; left: 0px; background: transparent; width: 100%; height: 100%; color: #fff; transform: rotate(-50deg) translate(-101px,291px); transform-origin: 0% 100%; transition: all 0.3s linear 0s; }
Теперь нам нужно совсем скрыть.caption до тех пор, пока на контейнер с эффектом не наведут мышь. В этот раз мы спрячем с помощью height: 0px; и overflow: hidden; . Конечные стили такие:

Effect .caption { position: absolute; top: 0px; left: 0px; background: transparent; width: 100%; height: 0px; overflow: hidden; color: #fff; transform: rotate(-50deg) translate(-101px,291px); transform-origin: 0% 100%; transition: all 0.3s linear 0s; }
Теперь, чтобы проявить.caption на hover, восстановим его высоту, повернем до rotate(0deg) и вернем на место по горизонтали и вертикали:

Effect:hover .caption { height: 100%; transform: rotate(0deg) translate(0px,0px); transition-delay: 0.3s; }
Стили для

,

И остаются дефолтными.

Эффект #10.2 строится на двух.overlay, выезжающих из верхнего левого и правого нижнего угла соответственно, а также на “выпадании” сверху элементов

,

Html-структура нужна такая:

Title is Here

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut.

View More

Начнем с левого верхнего.overlay, раскрывающегося полупрозрачной подложкой:

Effect .overlay-1 { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 0px; height: 0px; overflow: hidden; transition: all 0.3s linear 0.3s; } .effect:hover .overlay-1 { width: 100%; height: 100%; transition-delay: 0s; }
Интереснее с нижним правым. Поскольку ширина border равна 4px, просто задать ширине и высоте по 100% недостаточно, нужно компенсировать по 8px по вертикали и по горизонтали, чем нам и поможет calc:

Effect .overlay-2 { position: absolute; bottom: 0px; right: 0px; background: transparent; border: 4px double #fff; width: 0px; height: 0px; opacity: 0; transition: all 0.3s linear 0.3s; } .effect:hover .overlay-2 { width: 100%; max-width: calc(100% - 8px); height: 100%; max-height: calc(100% - 8px); opacity: 1; transition-delay: 0s; }
Теперь перейдем к.caption и его содержимому. Для.caption стили остаются дефолтными, изменятся они для перемещаемых элементов

,

И , каждый из которых необходимо сместить наверх. Чтобы заголовок не налезал на border подчеркиванием, рассчитаем ему ширину, как и.overlay-2:

Effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin: 20px auto 0px auto; width: calc(100% - 8px); position: relative; top: -100%; transition: all 0.3s linear 0.2s; } .effect .caption p { margin: 15px 0px; text-align: center; font-style: italic; padding: 0px 10px; position: relative; top: -100%; transition: all 0.3s linear 0.1s; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; position: relative; top: -100%;; transition: all 0.3s linear 0s; }
Осталось лишь, чтоб элементы опускались на hover, причем в установленном нами порядке:

Effect:hover .caption a.btn, .effect:hover .caption p, .effect:hover .caption h4 { top: 0px; } .effect:hover .caption a.btn { transition-delay: 0.3s; } .effect:hover .caption p { transition-delay: 0.4s; } .effect:hover .caption h4 { transition-delay: 0.5s; }
Эффект #10.3 состоит из увеличивающейся картинки и изменения угла поворота.caption на hover.

Html-структура нужна дефолтная, равно как и стили для

,

И . А начнем мы с увеличения картинки:

Effect img { width: 100%; height: 100%; transition: all 0.25s linear 0.3s; transform: scale(1); } .effect:hover img { transform: scale(1.3); transition-delay: 0s; }
Ну а что касается.caption - задача в том, чтобы, развернув его на 30 градусов, совместить его правый нижний угол с правым нижним углом картинки и заставить исчезнуть с помощью понижения прозрачности. А его transition, состоит из двух частей:

  1. opacity должен измениться сразу же, как только наводим мышь, за очень короткое время. opacity 0.1s linear 0s
  2. для transform необходима задержка на величину времени, необходимого для п.1, и transition-timing-function, создающий иллюзию небольшого замаха: transform 0.35s cubic-bezier(0.49, -0.19, 0.7, -0.01) 0.1s

Effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; opacity: 0; transform: rotate(30deg) translate(30px,-89px); transition: transform 0.35s cubic-bezier(0.49, -0.19, 0.7, -0.01) 0.1s, opacity 0.1s linear 0s; } .effect:hover .caption { transform: rotate(0deg) translate(0px,0px); opacity: 1; transition-delay: 0.3s; }
Надеюсь, эта статья оказалась для вас полезной и интересной!

Теги:

Добавить метки
  • Перевод

Мощь CSS3 огромна и в этом уроке вы сможете увидеть, как использовать его креативно. Мы собираемся создать несколько эффектов при наведении курсора мыши с помощью CSS3 transitions. При наведении курсора на эскиз будет показываться описание миниатюр, с использованием различных стилей в каждом примере.

Пожалуйста, обратите внимание, что эти примеры будут корректно работать только в современных браузерах, которые поддерживают свойства CSS3.

HTML-разметка
Структура разметки очень простая и интуитивно понятная. Создайте контейнер, который будет содержать изображение и любую другую информацию, такую как заголовок, описание и прочее.

Внутри блока с классом view вставим элемент с классом mask, который будет отвечать за наши эффекты CSS3, внутри него мы и поместим название, описание и ссылку на полное изображение. (Для некоторых примеров, нам нужно будет добавить mask как отдельный элемент и обернуть описание в div с классом content.)

Title

Read More

CSS
После создания разметки мы создадим наши стили.

Мы установим общие правила для наших стилей, а затем мы будем добавлять специальные классы с желаемыми эффектами. В статье мы будем опускать CSS-префиксы для различных браузеров, но вы их можете увидеть в исходниках.
.view { width: 300px; height: 200px; margin: 10px; float: left; border: 10px solid #fff; overflow: hidden; position: relative; text-align: center; box-shadow: 1px 1px 2px #e6e6e6; cursor: default; background: #fff url(../images/bgimg.jpg) no-repeat center center } .view .mask, .view .content { width: 300px; height: 200px; position: absolute; overflow: hidden; top: 0; left: 0 } .view img { display: block; position: relative } .view h2 { text-transform: uppercase; color: #fff; text-align: center; position: relative; font-size: 17px; padding: 10px; background: rgba(0, 0, 0, 0.8); margin: 20px 0 0 0 } .view p { font-family: Georgia, serif; font-style: italic; font-size: 12px; position: relative; color: #fff; padding: 10px 20px 20px; text-align: center } .view a.info { display: inline-block; text-decoration: none; padding: 7px 14px; background: #000; color: #fff; text-transform: uppercase; box-shadow: 0 0 1px #000 } .view a.info:hover { box-shadow: 0 0 5px #000 }
А теперь мы рассмотрим десять эффектов.

Пример 1

Добавим специальный класс view-first в элемент с классом view для этого эффекта. Мы будем добавлять специальный класс для каждого экземпляра view элемента (view-first, view-second, view-third, и т.д.).


В первом примере мы будем использовать только некоторые базовые переходы, чтобы создать неплохой эффект при наведении курсора:
.view-first img { transition: all 0.2s linear; } .view-first .mask { opacity: 0; background-color: rgba(219,127,8, 0.7); transition: all 0.4s ease-in-out; } .view-first h2 { transform: translateY(-100px); opacity: 0; transition: all 0.2s ease-in-out; } .view-first p { transform: translateY(100px); opacity: 0; transition: all 0.2s linear; } .view-first a.info{ opacity: 0; transition: all 0.2s ease-in-out; }
А теперь самое интересное в нашем эффекте. Когда мы перемещаем курсор над изображением, можно использовать свойство delay чтобы имитировать простую анимацию. transition-delay, который мы используем при наведении может быть изменен, чтобы отличаться от обычного класса. В этом примере мы не использовали какой-либо задержки в обычном классе, но мы добавили delay в hover, который будет немного задерживать эффект перехода.
.view-first:hover img { transform: scale(1.1); } .view-first:hover .mask { opacity: 1; } .view-first:hover h2, .view-first:hover p, .view-first:hover a.info { opacity: 1; transform: translateY(0px); } .view-first:hover p { transition-delay: 0.1s; } .view-first:hover a.info { transition-delay: 0.2s; }

Пример 2

Во втором примере мы добавим специальный класс view-second, но мы оставим элемент с классом mask пустым и обернем описание в div с классом content.

Hover Style #2

Some description

Read More

Здесь класс mask будет иметь различные атрибуты, в частности мы собираемся применить свойство transform (translate и rotate). Описание элементов будут перемещены так, чтобы мы могли сдвинуть их вместе при наведении:
.view-second img { transition: all 0.2s ease-in; } .view-second .mask { background-color: rgba(115,146,184, 0.7); width: 300px; padding: 60px; height: 300px; opacity: 0; transform: translate(265px, 145px) rotate(45deg); transition: all 0.2s ease-in-out; } .view-second h2 { border-bottom: 1px solid rgba(0, 0, 0, 0.3); background: transparent; margin: 20px 40px 0px 40px; transform: translate(200px, -200px); transition: all 0.2s ease-in-out; } .view-second p { transform: translate(-200px, 200px); transition: all 0.2s ease-in-out; } .view-second a.info { transform: translate(0px, 100px); transition: all 0.2s 0.1s ease-in-out; }
Для нашего hover-эффекта мы используем translate-преобразование для того, чтобы перемещать наши элементы на место. mask также будет поворачиваться. Элементы описания будут двигаться с небольшой задержкой:
.view-second:hover .mask { opacity:1; transform: translate(-80px, -125px) rotate(45deg); } .view-second:hover h2 { transform: translate(0px,0px); transition-delay: 0.3s; } .view-second:hover p { transform: translate(0px,0px); transition-delay: 0.4s; } .view-second:hover a.info { transform: translate(0px,0px); transition-delay: 0.5s; }

Пример 3

В третьем примере мы будем использовать translate и rotate преобразование:
.view-third img { transition: all 0.2s ease-in; } .view-third .mask { background-color: rgba(0,0,0,0.6); opacity: 0; transform: translate(460px, -100px) rotate(180deg); transition: all 0.2s 0.4s ease-in-out; } .view-third h2{ transform: translateY(-100px); transition: all 0.2s ease-in-out; } .view-third p { transform: translateX(300px) rotate(90deg); transition: all 0.2s ease-in-out; } .view-third a.info { transform: translateY(-200px); transition: all 0.2s ease-in-out; }
Это простые инструкции, которые будут применяться при наведении. Теперь мы будем переворачивать описание элементов, установив transition-delay соответственно:
.view-third:hover .mask { opacity:1; transition-delay: 0s; transform: translate(0px, 0px); } .view-third:hover h2 { transform: translateY(0px); transition-delay: 0.5s; } .view-third:hover p { transform: translateX(0px) rotate(0deg); transition-delay: 0.4s; } .view-third:hover a.info { transform: translateY(0px); transition-delay: 0.3s; }

Пример 4

В четвертом примере мы выполним простое уменьшение изображения и увеличение нашего контента с вращением, все это благодаря scale преобразованию. Мы установим transition-delay равным 0,2 для стилей изображения, но при наведении мы изменим его на 0s. Это позволит начать анимацию немедленно при наведении мыши, но задержать её когда курсор уходит.
.view-fourth img { transition: all 0.4s ease-in-out 0.2s; opacity: 1; } .view-fourth .mask { background-color: rgba(0,0,0,0.8); opacity: 0; transform: scale(0) rotate(-180deg); transition: all 0.4s ease-in; border-radius: 0px; } .view-fourth h2{ opacity: 0; border-bottom: 1px solid rgba(0, 0, 0, 0.3); background: transparent; margin: 20px 40px 0px 40px; transition: all 0.5s ease-in-out; } .view-fourth p { opacity: 0; transition: all 0.5s ease-in-out; } .view-fourth a.info { opacity: 0; transition: all 0.5s ease-in-out; }
Это инструкции, чтобы получить этот эффект - с CSS3 можно делать все:).
.view-fourth:hover .mask { opacity: 1; transform: scale(1) rotate(0deg); transition-delay: 0.2s; } .view-fourth:hover img { transform: scale(0); opacity: 0; transition-delay: 0s; } .view-fourth:hover h2, .view-fourth:hover p, .view-fourth:hover a.info{ opacity: 1; transition-delay: 0.5s; }

Пример 5

В этом пятом примере мы будем использовать свойство translate наряду с transition-timing-function ease-in-out для того, чтобы сдвинуть контент с левой стороны.
.view-fifth img { transition: all 0.3s ease-in-out; } .view-fifth .mask { background-color: rgba(146,96,91,0.3); transform: translateX(-300px); opacity: 1; transition: all 0.4s ease-in-out; } .view-fifth h2{ background: rgba(255, 255, 255, 0.5); color: #000; box-shadow: 0px 1px 3px rgba(159, 141, 140, 0.5); } .view-fifth p{ opacity: 0; color: #333; transition: all 0.2s linear; }
Эффект при наведении будет сдвигать изображение вправо и описание появится с левой стороны, как если бы оно сдвинуло картинку:
.view-fifth:hover .mask { transform: translateX(0px); } .view-fifth:hover img { transform: translateX(300px); transition-delay: 0.1s; } .view-fifth:hover p{ opacity: 1; transition-delay: 0.4s; }

Пример 6

В этом примере мы сделаем описание появляющееся спереди, уменьшим изображение до исходного размера (scale c 10 до 1). Кнопка «read more» будет появляться снизу (translate).
.view-sixth img { transition: all 0.4s ease-in-out 0.5s; } .view-sixth .mask{ background-color: rgba(146,96,91,0.5); opacity:0; transition: all 0.3s ease-in 0.4s; } .view-sixth h2{ opacity:0; border-bottom: 1px solid rgba(0, 0, 0, 0.3); background: transparent; margin: 20px 40px 0px 40px; transform: scale(10); transition: all 0.3s ease-in-out 0.1s; } .view-sixth p { opacity:0; transform: scale(10); transition: all 0.3s ease-in-out 0.2s; } .view-sixth a.info { opacity:0; transform: translateY(100px); transition: all 0.3s ease-in-out 0.1s; }
Обратный переход будет задержан таким образом, чтобы он выглядел гладким:
.view-sixth:hover .mask { opacity:1; transition-delay: 0s; } .view-sixth:hover img { transition-delay: 0s; } .view-sixth:hover h2 { opacity: 1; transform: scale(1); transition-delay: 0.1s; } .view-sixth:hover p { opacity:1; transform: scale(1); transition-delay: 0.2s; } .view-sixth:hover a.info { opacity:1; transform: translateY(0px); transition-delay: 0.3s; }

Пример 7

В седьмом примере идея в том, чтобы повернуть изображение в центре и переместить его вдаль. Затем появится описание, пряча за собой вращающиеся изображение.
.view-seventh img{ transition: all 0.5s ease-out; opacity: 1; } .view-seventh .mask { background-color: rgba(77,44,35,0.5); transform: rotate(0deg) scale(1); opacity: 0; transition: all 0.3s ease-out; transform: translateY(-200px) rotate(180deg); } .view-seventh h2{ transform: translateY(-200px); transition: all 0.2s ease-in-out; } .view-seventh p { transform: translateY(-200px); transition: all 0.2s ease-in-out; } .view-seventh a.info { transform: translateY(-200px); transition: all 0.2s ease-in-out; }
При наведении мы добавим задержку для элементов с описанием. Это позволит нам видеть вращающиеся изображение, прежде чем описание скроет картинку. В обратном переходе все исчезнет сразу же, и мы увидим изображение вращающееся в обратном направлении:
.view-seventh:hover img{ transform: rotate(720deg) scale(0); opacity: 0; } .view-seventh:hover .mask { opacity: 1; transform: translateY(0px) rotate(0deg); transition-delay: 0.4s; } .view-seventh:hover h2 { transform: translateY(0px); transition-delay: 0.7s; } .view-seventh:hover p { transform: translateY(0px); transition-delay: 0.6s; } .view-seventh:hover a.info { transform: translateY(0px); transition-delay: 0.5s; }

Пример 8

В восьмом примере мы будем использовать анимацию и воссоздадим эффект отскока. Описание будет спускаться снизу и отскакивать от нижней границы.
.view-eighth .mask { background-color: rgba(255, 255, 255, 0.7); top: -200px; opacity: 0; transition: all 0.3s ease-out 0.5s; } .view-eighth h2{ transform: translateY(-200px); transition: all 0.2s ease-in-out 0.1s; } .view-eighth p { color: #333; transform: translateY(-200px); transition: all 0.2s ease-in-out 0.2s; } .view-eighth a.info { transform: translateY(-200px); transition: all 0.2s ease-in-out 0.3s; }
Мы добавим анимацию для элемента mask и определим некоторые установки задержки для элементов описания:
.view-eighth:hover .mask { opacity: 1; top: 0px; transition-delay: 0s; animation: bounceY 0.9s linear; } .view-eighth:hover h2 { transform: translateY(0px); transition-delay: 0.4s; } .view-eighth:hover p { transform: translateY(0px); transition-delay: 0.2s; } .view-eighth:hover a.info { transform: translateY(0px); transition-delay: 0s; }
Чтобы воссоздать настоящий эффект отскока мы воспользуемся translateY, как вы можете видеть там несколько кадров, которые создают этот эффект:
@keyframes bounceY { 0% { transform: translateY(-205px);} 40% { transform: translateY(-100px);} 65% { transform: translateY(-52px);} 82% { transform: translateY(-25px);} 92% { transform: translateY(-12px);} 55%, 75%, 87%, 97%, 100% { transform: translateY(0px);} }

Пример 9

В этом примере мы будем использовать два элемента mask, чтобы сдвигать их с правого нижнего и с левого верхнего углов:

Hover Style #9

Read More

Элементы mask будут иметь различные значения translation и transfrom-origin. А также мы укажем что один выровнен по верхней границе, а другой по нижней:
.view-ninth .mask-1,.view-ninth .mask-2{ background-color: rgba(0,0,0,0.5); height: 361px; width: 361px; background: rgba(119,0,36,0.5); opacity: 1; transition: all 0.3s ease-in-out 0.6s; } .view-ninth .mask-1 { left: auto; right: 0px; transform: rotate(56.5deg) translateX(-180px); transform-origin: 100% 0%; } .view-ninth .mask-2 { top: auto; bottom: 0px; transform: rotate(56.5deg) translateX(180px); transform-origin: 0% 100%; } .view-ninth .content{ background: rgba(0,0,0,0.9); height: 0px; opacity: 0.5; width: 361px; overflow: hidden; transform: rotate(-33.5deg) translate(-112px,166px); transform-origin: 0% 100%; transition: all 0.4s ease-in-out 0.3s; } .view-ninth h2{ background: transparent; margin-top: 5px; border-bottom: 1px solid rgba(255,255,255,0.2); } .view-ninth a.info{ display: none; }
При наведении, мы сделаем так, что содержание будет появляться как бы из под двух, съезжающих в центр, элементов mask:
.view-ninth:hover .content{ height: 120px; width: 300px; opacity: 0.9; top: 40px; transform: rotate(0deg) translate(0px,0px); } .view-ninth:hover .mask-1, .view-ninth:hover .mask-2{ transition-delay: 0s; } .view-ninth:hover .mask-1{ transform: rotate(56.5deg) translateX(1px); } .view-ninth:hover .mask-2 { transform: rotate(56.5deg) translateX(-1px); }
Мы настроили transition-delay для элементов mask таким образом, что, когда мы наводим курсор, переход происходит мгновенно, но при уходе мыши, задержка будет больше.

Пример 10

В последнем примере, мы будем увеличивать изображение, а затем прятать, перенося описание на передний план. Мы можем сделать это, используя шкалу преобразования (scale transform) и настраивая уровень прозрачности:
.view-tenth img { transform: scaleY(1); transition: all 0.7s ease-in-out; } .view-tenth .mask { background-color: rgba(255, 231, 179, 0.3); transition: all 0.5s linear; opacity: 0; } .view-tenth h2{ border-bottom: 1px solid rgba(0, 0, 0, 0.3); background: transparent; margin: 20px 40px 0px 40px; transform: scale(0); color: #333; transition: all 0.5s linear; opacity: 0; } .view-tenth p { color: #333; opacity: 0; transform: scale(0); transition: all 0.5s linear; } .view-tenth a.info { opacity: 0; transform: scale(0); transition: all 0.5s linear; }
При наведении мы просто масштабируем изображение, а зачем прячем его, уменьшив его прозрачность до 0:
.view-tenth:hover img { transform: scale(10); opacity: 0; } .view-tenth:hover .mask { opacity: 1; } .view-tenth:hover h2, .view-tenth:hover p, .view-tenth:hover a.info{ transform: scale(1); opacity: 1; }

Заключение
CSS3 имеет действительно большой потенциал для создания красивых эффектов. Вскоре, надеюсь, мы будет в состоянии избегать использование JavaScript для создания простых эффектов и полагаться на 100% на CSS, во всех браузерах.

Я надеюсь, что вам понравились эти эксперименты, но прежде всего я надеюсь, что они смогут вдохновить вас на создание своих эффектов.

P.S. Данная статья является логическим продолжением статьи от Mary Lou

Теги: Добавить метки

Урок в котором мы научимся создавать интересные эффекты при наведении на изображения. Особенность заключается в использовании свойства border . Работать такие эффекты будут только в современных, поддерживающих css3 , браузерах.

HTML

Довольно простая структура.
Создаем родительскую оболочку с классом view и контентом внутри. Затем создаем контейнер с классом mask , где и будем применять css3 переходы получая эффекты при наведении. В некоторых примерах этот синтаксис немного изменится в зависимости от применяемого эффекта.

Полное изображение

CSS

Здесь приведены основные свойства нашего урока. Для каждого эффекта будет свой css файл, вы же можете объединять различные эффекты в один css файл.

View { width: 300px; height: 200px; margin: 10px; float: left; border: 5px solid #fff; overflow: hidden; position: relative; text-align: center; box-shadow: 0px 0px 5px #aaa; cursor: default; } .view .mask, .view .content { width: 300px; height: 200px; position: absolute; overflow: hidden; top: 0; left: 0; } .view img { display: block; position: relative; } .view a.info { background:url(../img/link.png) center no-repeat; display: inline-block; text-decoration: none; padding:0; text-indent:-9999px; width:20px; height:20px; }

Пример 1

HTML

Добавим класс effect к элементу с классом view для этого эффекта:

Полное изображение

CSS

Чтобы уменьшить урок мы опустили в коде префиксы (-moz,-webkit и др.), но все они есть в css файлах эффектов.
В дополнении к свойству border для создания треугольника, мы использовали многократные переходы, что позволило иметь больше контроля над свойствами во время анимации:

Effect img { opacity:1; transform:scale(1,1); transition: all 0.2s ease-in; } .effect .mask { opacity:0; overflow:visible; border-color:rgba(0,0,0,0.7) transparent transparent transparent; border-style:solid; border-width:150px; width:0; height:0; transform:translateY(-125px); transition: transform 0.2s 0.1s ease-out, opacity 0.3s ease-in-out; } .effect a.info { opacity:0; transform:translateY(-125px); transition: transform 0.3s ease-in, opacity 0.1s ease-in-out; } .effect:hover img { opacity:0.7; transform:scale(2,2); } .effect:hover .mask { opacity: 1; transform: translateY(0px); } .effect:hover a.info { opacity:1; transform:translateY(100px); }

Пример 2

HTML

Синтаксис этого примера несколько отличается, обычно достаточно добавить специальный класс second-effect к элементу с классом view , но тут мы еще добавили ссылку внутри элемента с классом mask :

Полное изображение

CSS

В этом примере мы собираемся работать с параметрами свойства border . Также реализовали box-sizing . Свойство box-sizing используется для изменения дефолтной box модели вычисляющей ширину и высоту элементов.

Second-effect .mask { opacity: 0; overflow:visible; border:0px solid rgba(0,0,0,0.7); box-sizing:border-box; transition: all 0.4s ease-in-out; } .second-effect a.info { position:relative; top:-10px; opacity:0; transform:scale(0,0); transition: transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out; } .second-effect:hover .mask { opacity: 1; border:100px solid rgba(0,0,0,0.7); } .second-effect:hover a.info { opacity:1; transform:scale(1,1); transition-delay:0.3s; }

Пример 3

HTML

Добавим к классу view специальный класс third-effect для этого эффекта:

Полное изображение

CSS

Как видно, то всего с помощью нескольких строк кода можно получить хороший эффект благодаря свойству border :

Third-effect .mask { opacity: 0; overflow:visible; border:100px solid rgba(0,0,0,0.7); box-sizing:border-box; transition: all 0.4s ease-in-out; } .third-effect a.info { position:relative; top:-10px; /* Center the link */ opacity: 0; transition: opacity 0.5s 0s ease-in-out; } .third-effect:hover .mask { opacity: 1; border:100px solid rgba(0,0,0,0.7); } .third-effect:hover a.info { opacity:1; transition-delay: 0.3s; }

Пример 4

HTML

Разметка в этом примере короче по сравнению с предыдущими примерами, но получаемый эффект очень внушительный:

CSS

Используя только класс mask в комбинации со свойством border-radius получится довольно красивый эффект. Также использовали свойство visibility , которое позволяет в конце перехода получить кликабельное изображение.

Fourth-effect .mask { position:absolute; /* Center the mask */ top:50px; left:100px; cursor:pointer; border-radius: 50px; border-width: 50px; display: inline-block; height: 100px; width: 100px; border: 50px solid rgba(0, 0, 0, 0.7); box-sizing:border-box; opacity:1; visibility:visible; transform:scale(4); transition:all 0.3s ease-in-out; } .fourth-effect:hover .mask { opacity: 0; border:0px solid rgba(0,0,0,0.7); visibility:hidden; }

Пример 5

HTML

В этом последнем примере такой же синтаксис, как и в четвертом, отличия лишь в добавляемом классе fifth-effect вместо fourth-effect:

CSS

Также здесь мы использовали свойство border и visibility . Трюк заключается в изменении свойства border с solid на double :

Fifth-effect img { opacity:0.2; transition: all 0.3s ease-in; } .fifth-effect .mask { cursor:pointer; opacity:1; visibility:visible; border:100px solid rgba(0,0,0,0.7); box-sizing:border-box; transition: all 0.4s cubic-bezier(0.940, 0.850, 0.100, 0.620); } .fifth-effect:hover .mask { border:0px double rgba(0,0,0,0.7); opacity:0; visibility:hidden; } .fifth-effect:hover img { opacity:1; }

Очередная анимация на CSS3, с присутствием hover-эффект на изображение, которое идет на изображение разного порядка тематического сайта. Здесь появление заключается в том, что оно не будет появляться с разных сторон. Здесь оно в уникально, а точнее с наведении курсора, плавно и потом быстрее выезжает самого снимка, что смотрится просто шикарно. Не говоря о том, что несет за собой информацию и безусловно функциональные действия. Это название материала, если установлено в каталоге фотографий, то можно кратко описание выставить.

Но и сам переход, где кнопка создана на самом фоне по центру, где светлые тени идут обводом и также имеет свой эффект. И все это происходит на прозрачно темном фоне, что подойдет на светлый интернет ресурс и аналогичный по оттенку в материале. Можно назвать, что все сделано современно с идеи для тонких эффектов зависания, где работает, если только курсор находится на снимке. Красивый эффект зависания, который минимизирует изображения, придающие пространство сплошной цветной коробке с текстом, что находится внутри, со всем функционалом.

Эффекты Hover доступны на странице продуктов любого шаблона. Вы можете отобразить название продуктов и цены над цветовым наложением, который можно поставить в ручную по палитре цвета. Но это касается многих тематических наклонений, это как софт или игровой ресурс. Также не нужно забывать, что отличный способ продемонстрировать особенность или ключевые детали для каждого продукта.


.png" alt="">

Скрипты на zotner.ru


Переход


CSS

Abecause_certainlyn {
width: 100%;
height: 100%;
float: left;
overflow: hidden;
position: relative;
text-align: center;
cursor: default;
}

Abecause_certainlyn .easytuni_cigaretolsag {
width: 100%;
height: 100%;
position: absolute;
overflow: hidden;
top: 0;
left: 0;
opacity: 0;
filter: alpha(opacity=0);
background-color: rgba(27, 25, 25, 0.65);
-webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0.35, 1.4);
transition: all 0.4s cubic-bezier(0.88, -0.99, 0.37, 1.43);
}

Abecause_certainlyn img {
display: block;
position: relative;
-webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0.33, 1.4);
transition: all 0.4s cubic-bezier(0.88, -0.99, 0.36, 1.42);
}

Abecause_certainlyn h2 {
text-transform: uppercase;
color: #fff;
text-align: center;
position: relative;
font-size: 17px;
background: rgba(25, 24, 24, 0.73);
-webkit-transform: translatey(-100px);
-ms-transform: translatey(-100px);
transform: translatey(-100px);
-webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0.44, 1.36);
transition: all 0.4s cubic-bezier(0.88, -0.99, 0.44, 1.44);
padding: 10px;
}

Abecause_certainlyn a.pembarra_sedogzam {
text-decoration: none;
display: inline-block;
text-transform: uppercase;
color: #f7f2f2;
border: 1px solid #fff;
background-color: rgba(29, 28, 28, 0);
opacity: 0;
filter: alpha(opacity=0);
-webkit-transition: all 0.4s cubic-bezier(0.25, 0.1, 0.16, 0.89);
transition: all 0.4s cubic-bezier(0.25, 0.1, 0.24, 0.83);
margin: 50px 0 0;
padding: 8px 15px;
}

Abecause_certainlyn a.pembarra_sedogzam:hover {
box-shadow: 0 0 6px #f9ecec;
}

Abecause_certainlyn:hover img {
-ms-transform: scale(1.3);
-webkit-transform: scale(1.3);
transform: scale(1.3);
}

Abecause_certainlyn:hover .easytuni_cigaretolsag {
opacity: 1;
filter: alpha(opacity=100);
}

Abecause_certainlyn:hover h2,.abecause_certainlyn:hover a.pembarra_sedogzam {
opacity: 1;
filter: alpha(opacity=100);
-ms-transform: translatey(0);
-webkit-transform: translatey(0);
transform: translatey(0);
}

Abecause_certainlyn:hover a.pembarra_sedogzam {
-webkit-transition-delay: .2.1s;
transition-delay: .2.1s;
}


Чтоб понять, как все производится, то будет ниже Demo и снимки при работе.

По умолчанию:

Это когда навели курсор:

Многие эффекты используют функции CSS3, такие, как переходы, трансляции и анимации. Старые браузеры, которые не поддерживают эти функции, могут нуждаться в дополнительном внимании, чтобы убедиться, что эффект отложенного зависания все еще существует.

Прежде всего, для тех кто не совсем ещё в теме или совсем не в теме, поясню вкратце, что такое . Это различные виды эффектов (всплывающие подписи, подсказки, плавные переходы, трансформация, ротация, увеличение, смещение и т.д и т.п.) применяемые к элементам веб-сайта на них курсора мыши. Реализованы эти могут как с помощью различных плагинов jQuery, так и на чистом .
Сегодня я подготовил большую подборку оригинальных hover-эффектов для изображений созданных с помощью CSS3, без подключения javascript-библиотек. О достоинствах и недостатках реализации hover-эффектов на чистом CSS3 не буду, это другая тема, просто смотрите примеры, и при необходимости используйте понравившийся у себя на сайте. Все эффекты представленные в обзоре снабжены демонстрационным примером и подробной документацией с исходниками. Мануалы по-большей части на буржуинском, но всё более-менее интуитивно понятно.

Сразу хочу обратить ваше внимание на то, что все эти примеры будут корректно работать только в современных браузерах, которые поддерживают свойства CSS3.

Дабы не ломать общую картину, не стал коверкать машинным переводом названия эффектов(за исключением некоторых), оставил оригиналы заголовков такими, как их обозвал разработчик.

Очень интересный эффект при наведении на миниатюры изображений, с использованием тонких линий в конструкции и типографии. Несколько различных видов эффектов появления подписей к картинкам, мягкие и не навязчивые 3D-преобразования, и плавные переходы псевдо-элементов. Работает только в современных браузерах.

iHover это впечатляющая коллекция эффектов при наведении на чистом CSS3, с поддержкой Bootstrap 3. Построен на Scss CSS (файл), легко модифицируется переменными. Код модульный, нет необходимости включать в работу весь файл. 30+ различных эффектов в одном пакете. Всё довольно хорошо документировано, эффекты очень просты в использовании. Все, что вам нужно сделать, это правильно выстроить HTML-разметку и подключить файл CSS в работу.

Создаёт несколько простых, но стильных эффектов при наведении для подписей изображений. Идея заключается в том, чтобы при наведении на миниатюры, получить эффектное появление заголовка, имя автора и кнопки связи. Для некоторых эффектов использованы визуальные 3D-преобразования.

Совсем уж простецкий эффект перехода, без особых наворотов, полностью круглое изображение в рамке, трансформируется меняя фокус при наведении и всё.

Hover-эффекты для миниатюр на CSS3

Разработчик позиционирует свою работу, как пример галереи изображений с эффектами переходов при появлении аннотаций(подписей) к миниатюрам. Заявлена уверенная поддержка современными браузерами, включая IE 9+. Полноценной галереей, конечно назвать это сложно, а вот эффект появления подписей, довольно интересный.

Очередной набор правил CSS, для создания впечатляющих эффектов преобразований при наведении на абсолютно круглые миниатюры. Пакет содержит 7 видов переходов CSS3, очень подробная документация по настройке и использованию. Эффекты поддерживаются всеми современными браузерами.

Вращение миниатюр при наведении

Простой эффект вращения круглых миниатюр при наведении на них курсора мыши, примерно такой же вы можете видеть у меня на блоге, в анонсах записей на главной. Реализуется парой-тройкой строк кода css.

Если перевести дословно:"Сексуальный эффект при наведении на ". Что-то такого сексуального, в этом эффекте вы конечно же вряд ли заметите, если только у вас не буйная фантазия, но эффект по своему интересен и обратить внимание на него стоит.

Пять различных эффектов для изображений при наведении на них. Всплывающие подписи в трёх вариациях, шторки в виде смены степени прозрачности и вращение с перемещением по горизонтали.

4 Вида эффектов анимации подписей изображений, реализованных исключительно средствами CSS3. Разные позиции при появлении и эффекты переходов, вполне себе стандартное исполнение. Чтобы понять, как работает анимация, загляните в исходный код демо-страницы, отдельной документации не обнаружил.

Выстроенные в сетку галереи миниатюры с различными эффектами появления подписей, вращение, проявление, всплытие и т.д. Документация по использованию и настройке довольно скудна, но при особом желании разобраться можно.

Данный эффект особого ничего из себя не представляет, банальная смена яркости изображений при наведении, разве что добавлены элементы анимации. Разбираться с подробностями реализации придётся самостоятельно, разложив исходники демо.

Ещё один набор из 10 hover-эффектов для изображений, различные видоизменения миниатюр при наведении, увеличение, ротация, поворот, затемнение и т.д.

Различные эффекты анимации рамки вокруг изображений, смотрится довольно привлекательно, имеется подробное руководство по настройке и использованию.

Оригинальные hover-эффекты на CSS3 применяемые для эффектного появления подписей миниатюр изображений при наведении. В набор правил CSS входят 10 различных эффектов, которые вы можете использовать отдельно для разных картинок. Эффекты по-настоящему впечатляют, особенно понимая то, что всё это сделано лишь с помощью CSS3. Подробное руководство, поможет вам разобраться что к чему.

Идея состоит в том, чтобы создать SVG, который представляет собой форму-фон для какой-то надписи и превращается в другую форму при наведении курсора мыши. Таким образом можно сделать множество разных вариантов, в примере же, показаны три вида эффектов переходов. Достоинством использования SVG является то, что мы можем изменить размер формы в соответствии размеров родительского контейнера.

Раздвижные изображения

Суть данного эффекта в том, что изображение раздвигается вверх и вниз для появления подписи. Если поработать с параметрами стилей, думаю можно добиться вполне-себе симпатичных эффектов, а по умолчанию, выглядит всё совсем уж просто.

С этим эффектом всё просто, подписи к картинкам выскальзывают в верху справа или слева в низу, в виде ленты с полупрозрачным тёмным фоном, всё очень просто переформируется с помощью свойств css.

Интересное решение, миниатюры представлены в затемнённом виде, при наведении на них изображения проявляются и всплывает подпись на светлом фоне.

Подпись к изображению появляется из угла и расширяется на всю площадь картинки по диагонали.

Ещё несколько интересных решений для реализации всплывающих подписей к миниатюрам изображений. В онлайн-редакторе вы можете поэкспериментировать с параметрами и добиться более впечатляющих результатов.

Набор красивых эффектов при наведении на миниатюры, различные виды появления и оформления подписей к картинкам. Тонкие линии в контрасте с слегка затемнённым фоном создают лёгкие для восприятия информационные блоки.

Причудливые формы и эффект увеличения в связке с анимационным эффектом появления подписей к миниатюрам изображений.

Пример создания визуального слайд-эффекта для вывода объёмных подписей к изображениям с использованием только CSS3 и HTML5.

6 Подписей к картинкам

6 Вариантов появления всплывающих подписей к картинкам при наведении с помощью CSS3. Подробнейший урок по реализации и настройке, доступные для скачивания исходники.

Ну и наконец, напоследок так сказать, не могу не упомянуть о самом простейшем способе создания всплывающей подписи к миниатюре с помощью CSS3.

Об этом способе я рассказывал в одном из предыдущих своих уроков: .

Хотите приступить к работе над созданием сайта как можно быстрее? Теперь это абсолютно возможно! По той простой причине, что на маркетплейсе TemplateMonster появился новый раздел с . Коллекция будет пополняться, но и сейчас уже можно присмотреть что-то подходящее для вашего онлайн-проекта. Все, что вам нужно сделать — это выбрать свое идеальное готовое решение и поработать с презентацией нужной информации. И не забывайте, что текст для шаблона был написан вручную.

С Уважением, Андрей

Понравилась статья?