| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > overflow-y: scroll, сдвиг страницы |
| Автор: serghd 23.10.2012, 11:02 |
| Привет всем. Очень интересует, можно ли как-то исключить прокрутку страницы, если я двигаю колесом, к примеру, на div-е, у которого установлено "overflow-y: scroll;" ? То есть, на нём есть своя вертикальная прокрутка, она работает, но при достижении нижней границы div'а начинает прокручиваться сама страница. Можно ли как-то от этого избавиться? Спасибо. |
| Автор: Aliance 23.10.2012, 11:30 |
| В теории можно повесить на mouseover функцию, которая бы вырубала прокрутку к документа (preventDefault), а на mouseout возвращала бы обратно. |
| Автор: serghd 23.10.2012, 12:11 | ||||||
способ неплох, за исключением того, что при этом пропадает сам контрол скрола справа. В хроме получается, что страница "дёргается" при его исчезании/появлении. Я о:
Можно также использовать и:
Тогда скрол справа исчезать не будет, но при прокрутке колесом на самом диве тоже ничего не будет происходить. Вот мля. |
| Автор: Aliance 23.10.2012, 13:03 |
| Я именно второй вариант и имел ввиду. Ничего не происходит, потому что событие опускается вниз по дереву DOM и срабатывает для div. Чтобы понимать, о чем я говорю, прочитай эту http://forum.vingrad.ru/topic-32350.html. Я набросал небольшой http://jsfiddle.net/Aliance/gBk9Y/3/. Если в if запихать условие, при котором прокрутка так же будет отключаться при опускании ползунка до конца, либо наоборот ( $().scrollTop() в помощь), то думаю будет работать как тебе нужно. |
| Автор: serghd 23.10.2012, 13:48 | ||
спасибо |