Во время написания веб-приложений, в которых произошел ввод файлов, я хотел использовать drag 'n' drop, но я не хотел просто небольшой dropzone на странице. Я подумал, что было бы удобнее, если бы вы могли попасть на страницу. К счастью, событие window.ondrop срабатывает где угодно на странице, но я хотел, чтобы какой-то причудливый эффект показывал пользователю визуально, что перетаскивание возможно.
Чтобы сделать это, все, что было необходимо, было обнаружено, когда файл был перетащен в окно, а когда он был вытащен, чтобы вызвать эффект, который показал пользователю, что приложение было включено с помощью перетаскивания. Оказывается, события перетаскивания не так удобны. Я предположил, что window.ondragenter
будет запускаться только один раз, когда пользователь войдет в страницу. Затем, когда вы покидаете окно, он запускает window.ondragleave
. Неправильно. Он постоянно стреляет, когда мышь перемещается по дочерним элементам на странице.
Я посмотрел, какие свойства были доступны в объекте события, пытаясь найти что-нибудь, что могло бы выделить то, что мне нужно, но ничего не получилось. Дальше я получил возможность изменить цвет фона body
. И только если на странице ничего не было.
Тонны сайтов загрузки файлов получили это право. Imgur и WeTransfer, например. Их сайты были все спайтти-кодированы и сжаты до степени нечитаемости, и я не смог найти что-либо по этому вопросу при помощи googling.
Итак, как это можно сделать?