Анимация на CSS3 с использованием Icon Fonts
vladimir вс, 02/24/2013 - 13:03 CSS3
В этом уроке рассмотрим красивый эффект с использованием Icon Fonts и моего любимого приложения IcoMoon. Помимо оригинального эффекта, следующая техника отличается простотой. Мы будем использовать набор социальных иконок, сгенерированных с помощью приложения IcoMoon, а потом добавим оригинальный эффект при наведении.
Сохраняем социальные иконки в виде шрифта
Первым делом идём на сайт сервиса IcoMoon. Для этого урока будем использовать 6 социальных иконок: dribbble, facebook, twitter, pinterest, tumblr, flickr, google plus и github. Выбираем в приложении соответствующие иконки и сохраняем. Если вы испытываете проблемы с использованием Icon Fonts и IcoMoon, почитайте статью “Webfont Icons: альтернатива картинкам”.
Итак, наш набор иконок готов к использованию.
Папка IcoMoon содержит style.css файл, который будет использоваться в качестве базы. Начнём:
@font-face {
font-family: 'icomoon';
src:url('fonts/icomoon.eot');
src:url('fonts/icomoon.eot?#iefix') format('embedded-opentype'),
url('fonts/icomoon.woff') format('woff'),
url('fonts/icomoon.ttf') format('truetype'),
url('fonts/icomoon.svg#icomoon') format('svg');
font-weight: normal;
font-style: normal;
}
.icon-dribbble:before, .icon-twitter:before, .... {
font-family: 'icomoon';
speak: none;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
}
.icon-dribbble:before {
content: "e00a";
}
.icon-twitter:before {
content: "e00b";
}
....
Создаём разметку HTML для IconFonts
Здесь мы использовали aria-hidden атрибуты, чтобы элементы не были видны для считывающих устройств.
Идея hover-эффекта с IconFonts
Идея заключается в создании эффекта перемещения содержимого внутри блока при наведении. Устанавливаем всем элементам “li” свойство overflow в значение hidden, а высоту элементов “a” делаем в 2 раза больше, чем “li”. Вместе с псевдоклассом ”a:after” мы дублируем иконку. При наведении на “li” меняем цвет фона, элемент “a” смещаем вверх на половину высоты. Все эти изменения выполняем с помощью transition.
Добавляем иконки Font Icons в стили
Дублируем иконки для псевдоклассов icon-*:before и icon-*:after:
.icon-dribbble:before, .icon-twitter:before, ..., .icon-github:before,
.icon-dribbble:after, .icon-twitter:after, ..., .icon-github:after {
font-family: 'icomoon';
speak: none;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased; }
.icon-dribbble:before, .icon-dribbble:after {
content: "e00a"; }
.icon-twitter:before, .icon-twitter:after {
content: "e00b"; }
...
Дописываем оставшийся CSS:
ul.social {
text-align: center; }
ul.social li {
display: inline-block;
width: 60px;
height: 60px;
overflow: hidden;
line-height: 60px;
background: #404040;
/* --- optional, it looks nice also with simple squares --- */
border-radius: 100%;
transition-duration: 0.7s; }
/* --- hover effect : background color change --- */
ul.social li:hover {
background: #33cc99;
box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.3); }
ul.social li a {
display: block;
width: 100%;
height: 200%;
position: relative;
top: 0;
color: #33cc99;
transition: top 0.7s; }
/* --- hover effect : shift up --- */
ul.social li:hover a {
top: -60px; }
ul.social li a:after {
position: absolute;
width: inherit;
height: 50%;
left: 0;
bottom: 0;
color: #404040;
line-height: 60px;
text-align: center; }
И вот результат:
Источник
- Войдите, чтобы оставлять комментарии





