Суть эффекта: при прокрутке страницы фоновое изображение в шапке становится постепенно размытым и заголовок с описанием смещается до самого низа шапки. Также при скролле вверх — анимация происходит в обратном направлении.
1 HTML структура
Для начала нам необходимо создать правильную HTML структуру:
Большой заголовок
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptate odio, asperiores aut sapiente blanditiis cupiditate harum.
Поясню:
Строка: 2 — блок с фоновым изображением без размытия.
Строка: 3 — блок с фоновым размытым изображением, который изначально не виден.
Строки: с 4 по 7 — заголовок и подробное описание, которое будет смещаться при прокрутке вниз.
Как Вы поняли из HTML структуры, нам необходимо два фоновых изображения: размытое и неразмытое.Поэтому для каждого из блоков сейчас задаем своё фоновое изображение. Стилей немного:
#header {
height: 90vh;
min-height: 300px !important;
position: relative;
}
#header:before {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
display: block;
content: ' ';
background: #000;
opacity: 0.4;
}
#header span.bg.normal {
background-image: url("../images/header-normal.jpg");
}
#header span.bg.blur {
background-image: url("../images/header-blur.jpg");
opacity: 0;
}
#header span.bg {
background-color: #000;
background-position: 50% 0;
background-repeat: no-repeat;
background-size: cover;
display: block;
height: 100%;
left: 0;
opacity: 1;
position: absolute;
top: 0;
width: 100%;
}
#header .wrap {
left: 50%;
max-width: 800px;
padding: 0 15px;
position: absolute;
text-align: center;
top: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
width: 100%;
}
#header h1 {
color: #fff;
font-size: 80px;
font-weight: 900;
line-height: 95px;
margin: 0 0 20px;
}
#header p {
color: #fff;
font-size: 32px;
font-weight: 300;
line-height: 36px;
}
Со стилями закончили и переходим к анимации.Я использую опять же библиотеку ScrollMagic, которая позволяет создавать красивую анимацию на лендинге.Подключаем необходимые скрипты:Два первых скрипта можно не скачивать и подключить прямо из CDN:
А сейчас давайте заглянем внутрь script-sitehere.js:
$(function () {
var scrollMagicController = new ScrollMagic.Controller(
{
globalSceneOptions: {
triggerHook: 'onLeave'
}
}
);
var topperTween = TweenMax.to('#header span.bg.blur ', 1,
{
opacity: 1
}
);
var headingTween = TweenMax.to('#header h1, #header p', 1,
{
y: 200
}
);
var scene = new ScrollMagic.Scene(
{
triggerElement: '#header',
duration: '70%'
}
)
.setTween([topperTween, headingTween])
.addTo(scrollMagicController);
});
Ну вот и всё!
Автор урока: Юрий Немец