В данном уроке мы рассмотрим как создать достаточно простой эффект блеска для изображений реализованный исключительно с помощью css. С помощью данного эффекта можно скрасить различные изображения на сайте, к примеру стилизовать социальные закладки или логотип. Основная идея состоит в том, когда изображение активно, то по нем пробегает блик, который привлекает взор. Мы не будем использовать сторонних 'тяжелых' плагинов, все будет реализовано достаточно просто, чтобы по максимуму упростить и ускорить загрузку.
Для демонстрации нам понадобятся несколько изображений, мы их позаимствовали с ресурса tumblr. HTML разметка достаточно простая, мы не будем останавливаться на ней, просмотреть ее содержание можно в исходниках.
Шаг 1. CSS
Для достижения данного эффекта нам понадобится градиентная заливка, кроме этого мы будем подключать изображения через css. Функция figure:after будет отвечать за прозрачный слой на изображении, который создает иллюзию наложения стекла на изображении.
Код
figure {
border-radius: 70px;
width: 140px;
height: 140px;
position: relative;
overflow: hidden;
display: inline-block;
cursor: pointer;
margin: 0 0.8em 5em;
top: -120%;
transition: top 0.25s cubic-bezier(0, 0.3, 1, 0.7);
box-shadow: 0px 5px 4px -4px rgba(0, 0, 0, 0.4), 10px 4px 10px -8px rgba(0, 0, 0, 0.2), -10px 4px 10px -8px rgba(0, 0, 0, 0.2);
background-size: cover;
}
figure img {
vertical-align: bottom;
z-index: -5;
max-width: 100%;
max-height: 100%;
}
figure:hover {
top: 120%;
}
figure:before, figure:after {
content: '';
display: block;
position: absolute;
height: 100%;
}
figure:before {
width: 140%;
top: inherit;
left: -20%;
opacity: 0.6;
background-image: linear-gradient(180deg, rgba(255, 255, 255, 0), #ffffff 40%, rgba(255, 255, 255, 0.6) 60%, rgba(255, 255, 255, 0));
transform: rotate(-20deg);
}
figure:after {
width: 100%;
top: 0;
border-radius: 50%;
box-shadow: inset -5px -15px 40px rgba(0, 0, 0, 0.1);
background-image: radial-gradient(35% 25%, closest-corner, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0));
}
figure:nth-child(1) {
background-image: url("1.png");
}
figure:nth-child(2) {
background-image: url("2.png");
}
figure:nth-child(3) {
background-image: url("3.png");
}
figure:nth-child(4) {
background-image: url("4.png");
}
figure:nth-child(5) {
background-image: url("5.png");
}
figure:nth-child(6) {
background-image: url("6.png");
}
section {
position: absolute;
width: 100%;
top: 32%;
margin: -70px 0;
box-shadow: inset -5px -15px 40px rgba(0, 0, 0, 0.1);
text-align: center;
}
Свойство figure:before будет отвечать за сам блик, мы добавим тени, и позиционирование блика на изображении, кроме этого создаем градиентную заливку.
Теги: Источник: http://codepen.io/anon/pen/EiKkD
|
Скачать: 32_glitter-effect-.zip (442.3 Kb) Скачан: 101 |