4 822 Скрипты / Animation

CSS3 эффекты при наведении

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

HTML

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

<div class="view">  
      <img src="images/1.jpg" />  
      <div class="mask"></div>  
      <div class="content">  
           <a href="#" class="info" title="Полное изображение">Полное изображение</a>  
      </div>  
</div>  


CSS

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


Пример 1

HTML

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

    <div class="view effect">
         <img src="images/1.jpg" />
         <div class="mask"></div>
         <div class="content">
             <a href="#" class="info" title="Полное изображение">Полное изображение</a>
         </div>
    </div> 


CSS

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


Пример 2

HTML

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

<div class="view second-effect">  
     <img src="images/2.jpg" />  
     <div class="mask">  
         <a href="#" class="info" title="Полное изображение">Полное изображение</a>  
     </div>  
</div>  


CSS

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


Пример 3

HTML

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

<div class="view third-effect">  
     <img src="images/3.jpg" />  
     <div class="mask">  
         <a href="#" class="info" title="Полное изображение">Полное изображение</a>  
     </div>  
</div> 


CSS

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


Пример 4

HTML

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

<div class="view fourth-effect">  
    <a href="#" title="Полное изображение"><img src="images/4.jpg" /></a>  
    <div class="mask"></div>  
</div> 


CSS

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


Пример 5

HTML

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

<div class="view fifth-effect">  
    <a href="#" title="Полное изображение"><img src="images/5.jpg" /></a>  
    <div class="mask"></div>  
</div> 


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;
}


Скачать 1279Загрузок 113,68 Kb
Демо

Комментарии

  • Facebook
  • Вконтакте

Похожие статьи