Как предотвратить прокрутку мышью снаружи навесного элемента? - PullRequest
3 голосов
/ 05 июня 2010

У меня есть div, для которого установлено переполнение: scroll ;. Я получаю полосы прокрутки, что я и хочу. Однако, прокручивая div с помощью колеса мыши, он прокручивает остальную часть страницы, когда достигает верхней или нижней части содержимого div.

Как я могу прокрутить только div или всю страницу в зависимости от того, что зависло?

Ответы [ 3 ]

1 голос
/ 05 июня 2010

Вы можете проверить положение мыши и отменить события прокрутки для документа, если мышь находится в пределах границ div.

1 голос
/ 05 июля 2010

Во-первых, я не думаю, что вы можете переопределить событие прокрутки. Вот что я хотел бы сделать. Я не знаю JQuery, но вот несколько прямых JavaScript.

document.getElementById('scrollDiv').onmouseover=function(){
  document.getElementByTagName('body')[0].style.overflow='hidden';
}
document.getElementById('scrollDiv').onmouseout=function(){
  document.getElementByTagName('body')[0].style.overflow='';
}

Очевидно, вы могли бы немного подправить это, но это основная идея. Кроме того, если вам нужно, вы можете сделать другие тестовые случаи. Например, если у div есть фокус, делайте то же самое. Зависит от вашей настройки.

0 голосов
/ 05 июня 2010

В этом случае, я думаю, вам придется переопределить событие onscroll по умолчанию для тела. В вашем обработчике вам нужно будет вручную прокрутить содержимое div.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...