#javascript #html #css #parallax
#javascript #HTML #css #параллакс
Вопрос:
Я пытаюсь создать веб-сайт с параллаксной прокруткой. У меня есть базовый код, но я хочу, чтобы изображения исчезали при прокрутке вниз до следующего изображения и исчезали, когда оно появляется на экране. Я использую чистый HTML и CSS, без плагинов. Как мне это сделать? Вот мой код:
#divname {
background-image: url('http://lorempixel.com/1024/600/abstract/');
background-repeat: no-repeat;
background-size: cover;
background-position: center center;
width: 100vw;
height: auto;
background-attachment: fixed;
}
.text {
background-color: rgba(255, 255, 255, 0.75);
}
.header {
font-size: 10vw;
}
<div id="divname">
<div class="text">
<p class="header">Headername</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc facilisis dictum mi ac euismod. Aenean fermentum nisl ut lorem cursus, in consectetur est eleifend.</p>
</div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br>
PS: Кстати, я в порядке с использованием javascript, но я бы предпочел не использовать jQuery.
Ответ №1:
Не уверен, что это то, чего вы хотите, но вам нужно отделить ваши изображения от других текстов, иначе все ваши #divaname
будут исчезать при прокрутке.
var myDiv = document.getElementById('divname');
function scrolled() {
if (window.pageYOffset < 100) {
myDiv.style.opacity = 1;
} else {
myDiv.style.opacity = 0.3;
}
}
window.addEventListener('scroll', scrolled);
#divname {
background-image: url('http://lorempixel.com/1024/600/abstract/');
background-repeat: no-repeat;
background-size: cover;
background-position: center center;
width: 100vw;
height: auto;
background-attachment: fixed;
transition: opacity 1s ease;
}
.text {
background-color: rgba(255, 255, 255, 0.75);
}
.header {
font-size: 10vw;
}
<div id="divname">
<div class="text">
<p class="header">Headername</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc facilisis dictum mi ac euismod. Aenean fermentum nisl ut lorem cursus, in consectetur est eleifend.</p>
</div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br>
Комментарии:
1. Спасибо, есть ли способ заставить его полностью исчезать только тогда, когда он полностью отображается на экране, без необходимости проб и ошибок, чтобы найти правильное смещение y?
2. Вам нужно выполнять трассировку и ошибку каждый раз при прокрутке, чтобы проверить текущее смещение Y, иначе оно будет исчезать, даже если вы вернетесь к началу. Если вы этого хотите, просто удалите
else
условие.