В этой статье я покажу вам новые пять примеров hover эффектов с использованием различных свойств CSS. В данных примерах основной акцент сделан на свойстве border.
Пожалуйста, обратите внимание, что эти примеры будут корректно работать только в современных браузерах, которые поддерживают CSS3 свойства.
Эта простая разметка позволит нам делать эти эффекты. Как вы можете видеть в коде ниже, мы создаем родительский блок с классом view, и с content внутри. Затем мы создаем класс mask, где мы будем применять CSS3 переходы, чтобы получить эффект при наведении. В последних примерах этот синтаксис незначительно изменится в зависимости от эффекта, который мы хотим получить.
<div class="view"> <img src="images/1.jpg" /> <div class="mask"></div> <div class="content"> <a href="#" class="info" title="Full Image">Full Image</a> </div> </div>
Здесь мы зададим общие стили для нашего урока. Для каждого эффекта будет отдельный файл 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; }
css3 hover effects 1 example
Для первого примера, добавим в класс effect в элемент с классом view:
<div class="view effect"> <img src="images/1.jpg" /> <div class="mask"></div> <div class="content"> <a href="#" class="info" title="Full Image">Full Image</a> </div> </div>
Как мы видим, создавать анимацию очень просто, для экономии места я опустил префиксы (-moz-,-webkit-и т. д.), но вы найдете все префиксы в файле.
Я использовал свойство 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); }
css3 hover effects 2 example
Синтаксис в данном случае немного отличается, мы добавляем специальный класс second-effect к классу view, а также мы добавляем ссылку внутри блока с классом mask.
<div class="view second-effect"> <img src="images/2.jpg" /> <div class="mask"> <a href="#" class="info" title="Full Image">Full Image</a> </div> </div>
В этом примере мы будем работать с параметрами свойства border. Я также использовал box-sizing. CSS свойство box-sizing используется, для изменения алгоритма расчета ширины и высоты элемента.
.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; }
css3 hover effects 3 example
Добавляем к классу view специальный класс third-effect.
<div class="view third-effect"> <img src="images/3.jpg" /> <div class="mask"> <a href="#" class="info" title="Full Image">Full Image</a> </div> </div>
Как мы видим, здесь очень мало кода, а в результает мы можем получить хороший эффект благодаря свойству 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; }
css3 hover effects 4 example
Разметки в этом примере будет меньше в сравнении с предыдущими примерами, но эффект при наведении будет очень впечатляющим.
<div class="view fourth-effect"> <a href="#" title="Full Image"> <img src="images/4.jpg" /> </a> <div class="mask"></div> </div>
Используя только класс mask, в сочетании со свойством border-radius, позволяет нам создать действительно красивый эффект при наведении курсора.
.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; }
css3 hover effects 5 example
Последний пример имеет такую же разметку, как и в четвертый, с той лишь разницей, что мы добавляем класс fifth-effect, а не fourth-effect.
<div class="view fifth-effect"> <a href="#" title="Full Image"> <img src="images/5.jpg" /> </a> <div class="mask"></div> </div>
Также здесь мы будем использовать свойство 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; }
Я надеюсь, что вам понравились эти эксперименты, но прежде всего я надеюсь, что они вдохновят вас на собственные эксперименты. Спасибо.
© 2008 - 2024 Webmasters.BY Все права защищены
Новый комментарий