У меня есть небольшая "плавающая панель инструментов" - div с position:fixed; overflow:auto
.
Работает нормально.
Но когда прокручивается внутри этого окна (с колесом мыши) и достигает нижней вершины ИЛИ, родительский элемент "берет на себя" запрос "прокрутки": документ за окном окна инструментов.
- Что раздражает, а не то, что пользователь "просил".
Я использую jQuery и думал, что могу остановить это поведение с event.stoppropagation(): $("#toolBox").scroll( function(event){ event.stoppropagation() });
Он вводит функцию, но все равно распространение происходит в любом случае (прокрутка документа)
- На удивление трудно найти эту тему на SO (и Google), поэтому я должен спросить:
Как предотвратить распространение/барботирование события scroll?
Edit:
Рабочее решение благодаря амустиллу (и Брэндон Аарон для плагина 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();
}
}
});