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 ?

Author: Dan Dascalescu, 2010-06-01

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:

  1. O div tem overflow: auto, overflow: scroll, overflow-y: scroll, etc.
  2. O div tem actualmente uma barra de posicionamento visível que pode deslocar-se.
  3. 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.

 14
Author: Sildoreth, 2017-03-08 14:04:01
Também arranhei a cabeça neste, até começar a aprender mais sobre directivas do tipo DOCTYPE. O atributo onscroll não é suportado na versão mais recente do HTML spec. Vai mostrar como sintaxe inválida no Visual Studio. Pode funcionar em muitos navegadores, mas ainda é um código inválido.

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();
}); 
 4
Author: Ripside, 2013-05-17 04:51:36

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...)

Apesar de não borbulharem assim que o mergulhador for rolado para o fundo, a janela começa a rolar. (Basicamente se o div puder deslocar-se irá interceptar o evento do scroll, mas se não puder, então irá para a Página)
 2
Author: Caleb, 2010-06-01 15:23:37
Sei que pode não ser exactamente o que procuras, mas muitos frameworks javascript podem ajudar-te com isto. Não é necessário para o div ter uma barra de posicionamento para você se ligar aos eventos de posicionamento.

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).

Já usei isto num site que fiz há algum tempo. Se deslocar enquanto segura o seu rato as imagens que previne a rolagem predefinida da página e, em vez disso, desliza a barra de imagem.
 1
Author: mqchen, 2012-08-07 17:35:33
O pergaminho JQUERY pode ajudar-te.
$("#gridTableContainer").scroll(function() {
    HandlingScrollingStuff();
}); 
 0
Author: MackMon, 2013-11-12 10:30:08