Вот вам простой пример чтобы посмотреть логику работы.
HTML:
<div class="wrapper">
<section class="page page--one">
</section>
<section class="page page--two">
</section>
<section class="page page--free">
</section>
</div>
CSS:
body, html {
width: 100%;
height: 100%;
}
body {
overflow: hidden;
}
.wrapper {
width: 100%;
height: 100%;
[class*=page--] {
position: absolute;
left: 0;
height: 100%;
width: 100%;
transform: translateY(100%);
transition: transform 2s;
&:first-child {
position: relative;
transform: translateY(0);
}
&.active {
transform: translateY(-100%);
}
}
.page--one {
background-color: red;
}
.page--two {
background-color: green;
}
.page--free {
background-color: blue;
}
}
JS:
(function (w, d) {
var blocks = d.querySelectorAll('.page'),
ln = blocks.length,
index = 0,
stop = false,
direction,
next,
curr;
$(window).on("mousewheel DOMMouseScroll", function(event) {
event.preventDefault();
var evt = event.originalEvent ? event.originalEvent : event;
if (!stop) {
stop = true;
direction = evt.detail ? evt.detail*(-40) : evt.wheelDelta;
if (direction < 0) {
index + 1 < ln ? index++ : "";
next = blocks[index];
next ? next.classList.add('active') : "";
} else {
curr = blocks[index];
if (curr) {
curr.classList.remove('active');
index > 0 ? index-- : "";
}
}
setTimeout(function () {
stop = false;
}, 1000);
}
});
}(window, document));
Только не надо принимать, что так и должно быть, это всего лишь простой пример, чтобы уеснить технологию, он очень топорный и простой и написан за 15 минут.
Пример