um registo para o div
um elemento div não tem um onscroll
tratador de eventos?
O comportamento na minha página não parece indicar que o controlador de eventos div onscroll
seja reconhecido.
<div id='bd' onscroll='alert("Scroll Called");'></div>
também,
O div desloca os eventos para cima da janela, como por evento DOM a borbulhar ?
5 answers
Dependendo da versão do HTML que estiver a usar, poderá usar o evento onwheel
em vez disso.
O evento onscroll
só funciona se todos os seguintes forem verdadeiros:
- O div tem
overflow: auto
,overflow: scroll
,overflow-y: scroll
, etc. - O div tem actualmente uma barra de posicionamento visível que pode deslocar-se.
- O movimento do rato faz com que a barra de posicionamento se desloque.
Então o evento onscroll
não é realmente adequado para detectar o movimento geral da roda do rato.
Nota: que o evento onwheel
é novo no HTML 5. [[23]} de acordo com w3schools {[[24]}, é bastante amplamente suportado, no entanto.
Em vez disso, poderá usar o Javascript ou o jQuery. Eu uso uma abordagem como esta para sincronizar a rolagem em dois div's separados:
$("#gridTableContainer").scroll(function() {
HandlingScrollingStuff();
});
Sim, mas o elemento precisa de ter uma barra de posicionamento. Pode dar-lhe um com overflow: auto
(o que lhe dá uma barra de posicionamento quando o conteúdo é suficientemente alto) ou overflow: scroll
. (Estes podem ser definidos especificamente para x & y também overflow-y: scroll
...)
Eg. Mootools tem o evento mousewheel
. Demo aqui . (Ele tem scrollbars, mas você pode usar Firebug para remover as scrollbars e tentar -- ele ainda funciona).
$("#gridTableContainer").scroll(function() {
HandlingScrollingStuff();
});