我希望能够检测用户何时将文件拖入窗口并弹出覆盖整个应用程序的覆盖图,以显示用户可以上传文件的各种文件夹。如何处理文件拖放与窗口覆盖和多个拖放区域?
到目前为止,我知道我可以听到“dragenter”窗口并显示我的覆盖图,并听取覆盖“dragleave”以隐藏它,但问题似乎是拖过拖放区导致叠加层的dragleave事件触发,这会使叠加层隐藏(这会使窗口dragenter事件显示叠加层,等等)。
我为我的文件夹dropzones使用Dropzone.js。我环顾四周,看到类似的问题,但没有解决这个问题。
编辑:我发现(各种)中的溶液在别处在计算器上:jQuery Drag-and-Drop Flickering on Hover (Webkit only)
的解决方案是检查dragleave事件,并且如果pageX属性和pageY都为0,则这意味着dragleave是因为用户离开了窗户,而不是拖着其中一个下拉区。
对于其目的是要显示的叠加?要停止文件上传? –
该页面默认显示已上传的文件。当用户将文件拖放到屏幕上时,叠加层将显示可以上传的可用文件夹(有点像imgur.com处理文件上载叠加层,除了多个下拉框和全局下拉区)。 因此,叠加的目的是向用户显示文件夹下拉框。 –
你只是想显示覆盖或期待用户输入,如从覆盖选择文件夹? –