Как запретить прокрутку body, когда курсор прокручивает overflow hidden?

Здравствуйте, вопрос такой:

Имеется страница, body соответственно имеет полосу прокрутки справа.
Внутри body имеется div блок с overflow: auto, в котором также присутствует полоса прокрутки.

Когда наводишь курсор на этот блок и начинаешь крутить колесом мыши вниз, то когда до конца прокручиваешь содержимое блока - начинается прокрутка всего body в целом.

Как запретить body прокручиваться, когда прокручиваешь контент в блоке?

Нашел вот такое решение, идеально подходит plnkr.co/edit/30N5iZWKDSOqRUatESx3?p=preview но по какой-то причине не работает с div блоками (заменял e.target.tagName на e.target.hasClass)

2017-10-07_155950.png
  • Вопрос задан
  • 3447 просмотров
Пригласить эксперта
Ответы на вопрос 2
RusID
@RusID
Ответ написан
Комментировать
GoodWin64
@GoodWin64
Век живи - век учись.
Решение в лоб:
Вешаешь на блок, содержащий список товаров, лиснеры onMouseOver и onMouseOut, которые, соответственно, добавляют/убирают у "body" CSS класс "scroll-disallowed" (или любой подобный) с правилом "overflow-hidden".
function goodsContainerMouseOverHandler() {
    document.body.classList.add('scroll-disallowed');
}
function goodsContainerMouseOutHandler() {
    document.body.classList.remove('scroll-disallowed');
}
goodsContainer.addEventListener("mouseover", goodsContainerMouseOverHandler);
goodsContainer.addEventListener("mouseout", goodsContainerMouseOutHandler);


Пример
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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