imgur.comと同じ効果を得ようとしています(デスクトップからimgur.comにファイルをドラッグするとクールオーバーレイ)。 Event propagation, overlay and drag-and-drop eventsデスクトップからブラウザにファイルをドラッグするときに 'dragenter'にオーバーレイを表示する
しかし、私は解決策がかなり不満であることを発見しました。 問題は$(document).on( 'dragenter')が子要素の上をホバリングしたときに何度も起動されることです。ビューポートに入るとビューポートに入るときに一度起動されるイベントを探していたので、dragenterとdragleaveにクリーンな$ overlay.fadeIn()と.fadeOut()を持つことができました。
私はビューポート全体を塗りつぶす透明な要素でそれを解決しました。私は$(document)の代わりにその透明な要素のdragenterを呼び出します。 $( '*:visible')。live( 'dragenter')私は隠された実際のオーバーレイを表示します。 $( '#transparentOverlay')。on( 'dragleave')はオーバーレイを隠します。かなりハックそれが
ちょうどセレクタ$(「*:目に見える」)(少なくともサファリ/クローム/ Firefoxで)動作します。
誰もがより良いが...私に頭痛を与え)(生きます提案?
をこれは完全に働いた私が発見した唯一のソリューションです。.. setintervalとメモリリークに問題があるかどうかは分かりませんが、これまでは完全に機能していました。 –
誰かが今回より良い解決策を見つけましたか? – BastienSander
なぜあなたは最初にフランス語であなたの答えを書いたのですか?それを英語に翻訳しますか? – ozanmuyes