Evitar a rolagem do elemento pai quando a posição de rolagem do elemento interno atingir a parte superior / inferior? [duplicado
Esta pergunta já tem uma resposta aqui:
prevent Rolar borbulhando de elemento para janela 14 respostas Tenho uma pequena "caixa de ferramentas flutuante" - uma div composition:fixed; overflow:auto
. Funciona muito bem.
Mas ao rolar dentro dessa caixa (com a roda do mouse) e alcançar a parte inferior OU superior, o elemento pai "assume" a "solicitação de rolagem": O documento atrás da caixa de ferramentas é rolad
- O que é irritante e não o que o usuário "pediu"
Estou usando jQuery e pensei que poderia parar esse comportamento com event.stoppropagation ():$("#toolBox").scroll( function(event){ event.stoppropagation() });
Ele entra na função, mas ainda assim, a propagação acontece de qualquer maneira (o documento rola)
- É surpreendentemente difícil procurar esse tópico no SO (e no Google), então tenho que perguntar:
Como evitar a propagação / bolhas do evento de rolagem?
Editar
Solução de trabalho graças a amustill (e Brandon Aaron pelo plug-in do mousewheel aqui:
https: //github.com/brandonaaron/jquery-mousewheel/raw/master/jquery.mousewheel.j
$(".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();
}
}
});