Параллакс эффект для сайта может в значительной мере преобразовать его в нечто эффектно-современный стиль. Это придает внешнему виду ресурсу больший интерес и приятное визуальное составляющее.
Не хотелось бы вешать ярлыки или кого-то ущемлять, но чаще всего зарубежные ресурсы делаются в очень креативном образе, даже если они недружелюбные в плане юзабилити. И может даже создаваться впечатление, что такие сайты являются непросто ресурсом для посещения, а неким творческим искусством.
Немного отклонился от темы. Так вот. Я уже делал обзор на подобный плагин, который также позволяет сделать эффект параллакса. Но всегда есть различные плюсы и минусы. Возможно, этот плагин вам будет интересней или попроще.
basicScroll – эффект параллакса

Этот плагин позволяет изменять значение свойств CSS в зависимости от прокрутки страницы. Эффект будет работать на мобильных устройствах и на пк. Для того чтобы эффект работал, нам нужно в параметрах скрипта задать некий идентификатор, а затем с помощью var прописать его в желаемом свойстве. Смотрите на примере ниже.
HTML
<section id="post">
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-8 text-center">
<h1 class="mt-5 mb-5 title-cent">Пример параллакс</h1>
</div>
</div>
<div class="row">
<div class="col-lg-10 mx-auto">
<div class="scrollA mb-5"></div>
</div>
<div class="col-lg-10 mx-auto">
<div class="scrollB mt-5"></div>
</div>
<div class="col-lg-4 mx-auto">
<div class="scrollD mt-5"></div>
</div>
<div class="col-lg-4 mx-auto">
<div class="scrollE mt-5"></div>
</div>
<div class="col-lg-4 mx-auto">
<div class="scrollC mt-5"></div>
</div>
</div>
</div>
</section>
Подключение
<script src="basicScroll.min.js"></script>
<script>
const instanceA = basicScroll.create({
elem: document.querySelector('.scrollA'),
from: 'top-bottom',
to: 'top-top',
props: {
'--position': {
from: '0px',
to: '200px'
},
}
})
const instanceB = basicScroll.create({
elem: document.querySelector('.scrollB'),
from: 'top-bottom',
to: 'top-top',
props: {
'--positionc': {
from: '0px',
to: '300px'
},
'--opa': {
from: '.99',
to: '.01'
},
}
})
const rotateBox = basicScroll.create({
elem: document.querySelector('.scrollD'),
from: 'top-middle',
to: 'top-top',
props: {
'--r': {
from: '0',
to: '1turn'
}
}
})
const rotateBoxe = basicScroll.create({
elem: document.querySelector('.scrollE'),
from: 'middle-bottom',
to: 'top-top',
props: {
'--re': {
from: '0',
to: '2turn'
}
}
})
const rotateBoxc = basicScroll.create({
elem: document.querySelector('.scrollC'),
from: 'top-middle',
to: 'top-top',
props: {
'--rc': {
from: '0',
to: '3turn'
}
}
})
instanceB.start()
instanceA.start()
rotateBox.start()
rotateBoxe.start()
rotateBoxc.start()
</script>
CSS
body {
background: #000;
height: 300vh;
}
.scrollA, .scrollB, .scrollE,
.scrollD, .scrollC{
background: #FF0033;
height: 300px;
border-radius: 5px;
width: 100%;
}
.scrollA {
transform: translateY(var(--position));
}
.scrollB {
transform: translateY(var(--positionc));
opacity: var(--opa);
}
.scrollD {
transform: rotate(var(--r));
}
.scrollE {
transform: rotate(var(--re));
}
.scrollC {
transform: rotate(var(--rc));
}