Tôi đang cố gắng đạt được hiệu ứng tương tự như trên imgur.com (kéo tệp từ máy tính để bàn tới imgur.com và bạn sẽ thấy một lớp phủ). đã có giải pháp làm việc nhờ bài đăng này: Event propagation, overlay and drag-and-drop eventsHiển thị lớp phủ trên 'dragenter' khi kéo tệp từ máy tính để bàn đến trình duyệt
NHƯNG: tôi tìm giải pháp thay vì không hài lòng. vấn đề là $ (tài liệu) .on ('dragenter') được kích hoạt nhiều lần khi di chuột qua các phần tử con. tôi đã tìm kiếm một sự kiện được kích hoạt ONCE khi tôi vào khung nhìn và ONCE khi tôi rời khỏi khung nhìn để tôi có thể có một lớp phủ $ clean.fadeIn() và .fadeOut() trên dragenter và dragleave.
tôi đã giải quyết nó bằng phần tử trong suốt lấp đầy toàn bộ chế độ xem. sau đó tôi gọi trình kéo trên phần tử trong suốt thay vì trên $ (tài liệu). với $ ('*: visible'). live ('dragenter') i sau đó hiển thị lớp phủ ẩn và thực. $ ('# transparentOverlay'). on ('dragleave') ẩn các lớp phủ. khá hacky nhưng nó hoạt động (ít nhất là trong safari/chrome/firefox)
nhưng chỉ chọn $ ('*: có thể nhìn thấy'). sống() mang lại cho tôi đau đầu ...
ai có một tốt hơn gợi ý?
Đây là giải pháp duy nhất tôi đã tìm thấy rằng làm việc một cách hoàn hảo .. . im không chắc chắn nếu có vấn đề với các thiết lập và rò rỉ bộ nhớ, nhưng cho đến nay, nó hoạt động hoàn hảo. –
Có ai đó đã tìm ra giải pháp tốt hơn kể từ lần này không? – BastienSander
Tại sao bạn viết câu trả lời bằng tiếng Pháp ngay từ đầu? Và sau đó dịch nó sang tiếng Anh? – ozanmuyes