serii81
@serii81
Я люблю phр...

Как переключить скролл с элемента на body?

Добрый день.
На странице есть блок homeIntro, который имеет фиксированную высоту и overflow-y: scroll;
.home-intro {
	position: relative;
	margin-bottom: 1rem;
	height: 90rem;
	background-color: white;
	overflow-y: scroll;
	&.in-back {
		z-index: 1;
		overflow: hidden;
	}
}


Она находится в начале странице.
Я хочу, чтобы, когда юзер закончил скролить этот блок, то началась скроллится страница, и наоборот, когда страница будет скроллится вверх, то когда дойдет мышка до home-intro, чтобы этот блок стал скроллится.
Я добавил класс через javascript.
И вроде работает, но не так как хочется, то есть, не скроллится сразу, как мышка попала на home-intro, а нужно немного подождать.

export default function homeIntroScroll() {
    const homeIntro = document.querySelector('.home-intro');

    homeIntro.addEventListener('scroll', () => {
        if (homeIntro.offsetHeight + homeIntro.scrollTop >= homeIntro.scrollHeight) {
            homeIntro.classList.add('in-back');
        }
    })
    window.onscroll = function (e) {
        const scrollUp = this.oldScroll > this.scrollY;
        if (scrollUp && window.pageYOffset < 800) {
            homeIntro.classList.remove('in-back');
        }
        this.oldScroll = this.scrollY;
    }
}
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы