Comportamento de arrastar e soltar HTML5

Estou fazendo uso extensivo do arrastar e soltar nativo do HTML5, e ele está quase totalmente se comportando, com uma pequena exceçã

Estou tentando destacar meus dropzones quando algo é arrastado sobre a página. Originalmente, tentei fazer isso colocando os ouvintes do jQuery no corpo do documento, assim:

$("body").live('dragover',function(event){lightdz(event)});
$("body").live('dragexit dragleave drop',function(event){dimdz(event)});

com lightdz () e dimdz () alterando a propriedade de estilo de cor de plano de fundo de todos os dropzones na página para destacá-los. Isso não funcionou. Sempre que um objeto arrastado entra em um elemento filho na página (como um contêiner div), o ouvinte sinaliza isso como um evento dragleave e escurece as zonas de qued

Eu resolvi isso aplicando o ouvinte a todos os elementos visíveis na página, em vez de apenas o corpo. Ocasionalmente, havia uma ligeira oscilação visível nas zonas de queda quando cruzava a fronteira entre um elemento e outro, mas parecia bo

De qualquer forma, agora mudei lightdz () e dimdz () para que eles apliquem uma rápida animação jQuery fadeTo () a todas as não-dropzones. Isso pareceimpressionant quando funciona, e torna muito aparente para o usuário o que ele pode ou não fazer. O problema é que, quando passa entre os limites do elemento, aplica a animação fade. Isso é muito mais aparente do que o brilho ocasional da cor de fundo, especialmente porque, se o objeto for arrastado rapidamente por vários limites, ele enfileirará as animações e fará com que a página apareça e desapareça repetidamente.

Mesmo que eu não me importe com a animação fadeTo () e apenas mude a opacidade, é muito mais visível do que a cintilação da cor de fundo, porque a página inteira muda em vez de apenas os elementos da zona de got

Existe alguma maneira de referenciar a página inteira como um único elemento para fins de eventos dragover e dragleave? Caso contrário, existe alguma maneira de detectar uma queda que ocorre fora da janela do navegador? Se eu pular o evento dragleave, ele ficará bem, mas se algum objeto for arrastado sobre a janela do navegador e largado fora dela, a página inteira permanecerá desbotad

questionAnswers(3)

yourAnswerToTheQuestion