Задать вопрос
iborisbelov
@iborisbelov
Веб-дизайнер, UX\UI

Как запретить скроллинг в секторе content, при открытом меню?

Дано:
Раскрытое меню, взятое отсюда (уменьшите экран, для понимая вопроса).
f4abb2e03e3a4a4592ff0c6069fb8fb4.jpg

Слева остаётся контентная зона. Но если высота сайта будет больше чем заданная в примере, то при открытом меню можно будет левую часть, тоже скроллить.

Надо: чтобы левую (контентную зону) скроллить было нельзя.

Как не получалось:

На просторах интернета находил такой код:

position: fixed;
    overflow: hidden;

Но он просто "СТОПарит" нужную зону, и не даёт двигаться, ПРИ ЭТОМ возвращая в начало экрана.
То есть, если мы даже прокрутим страницу вниз, и нажмём открыть меню, то вернёмся вверх.

До нажатия 338d249ffec44e3cbf2aedabb69db199.jpg
После нажатия 6e026e7bef37414bb8120bd43bef4784.jpg

Как видите, возвращает обратно наверх. Как этого избежать?

----

UPD. Нашёл такой линк.

Там есть код:

var prevent = function(event) {
	window.scrollTo(0, 0);
	event ? event.preventDefault() : window.event.returnValue = false;
};

if(window.addEventListener) {
	var array = ['DOMMouseScroll', 'mousewheel', 'scroll'],
		i = array.length;

	while(i--) {
		window.addEventListener(array[i], prevent, false);
	}
}
else window.onmousewheel = document.onmousewheel = window.onscroll = prevent;

Вроде сработало, но оно сработало на весь класс контента.
У меня есть контент зона .cd-main-content.
И она же когда раскрытое меню .cd-main-content.nav-is-visible.

И я понимаю, что сюда
var array = ['DOMMouseScroll', 'mousewheel', 'scroll'],
вместо scroll надо впихнуть .cd-main-content.nav-is-visible, а как впихнуть двойной класс?

----

UPD. нашёл вариант, почему в последнем моём примере не двигается контентная зона?
  • Вопрос задан
  • 24977 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
iborisbelov
@iborisbelov Автор вопроса
Веб-дизайнер, UX\UI
Вопрос закрыт.
В том скрипте, что я скидывал выше https://codyhouse.co/demo/mega-site-navigation/ind...
К body прописывает класс, все делается чисто через css

body.overflow-hidden {
    overflow: hidden;
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы