На этот вопрос уже есть ответ:
У меня есть небольшой «плавающий ящик для инструментов» - div с position: fixed; переполнение: авто
.
Работает нормально.
Но при прокрутке внутри этого поля (колесиком мыши) и достижении нижнего ИЛИ верхнего элемента родительский элемент «берет на себя» «запрос прокрутки»: прокручивается документ за ящиком инструментов.
- Что раздражает, а не то, о чем «просил» пользователь.
Я использую jQuery и подумал, что могу остановить такое поведение с помощью event.stoppropagation (): $ ("# toolBox"). Scroll (function (событие) {event.stoppropagation ()});
Он действительно входит в функцию, но, тем не менее, распространение все равно происходит (документ прокручивается)
- На удивление сложно найти эту тему в SO (и в Google), поэтому я должен спросить:
Как предотвратить распространение / всплытие события прокрутки?
Изменить:
Рабочее решение благодаря amustill (и Брэндону Аарону за плагин mousewheel здесь:
https://github.com/brandonaaron/jquery-mousewheel/raw/master/jquery.mousewheel.js
$(".ToolPage").bind('mousewheel', function(e, d)
var t = $(this);
if (d > 0 && t.scrollTop() === 0) {
e.preventDefault();
}
else {
if (d < 0 && (t.scrollTop() == t.get(0).scrollHeight - t.innerHeight())) {
e.preventDefault();
}
}
});