--- title: Drag and drop slug: Web/API/HTML_Drag_and_Drop_API translation_of: Web/API/HTML_Drag_and_Drop_API original_slug: Web/Guide/HTML/Drag_and_drop ---
Firefox и прочие приложения компании Mozilla имеют ряд возможностей для управления drag и drop. Это позволяет пользователю нажать и удерживая зажатой кнопку мыши над элементом, переместить его на другую позицию, отпустив кнопку мыши пользователь может оставить элемент на новой позиции. На протяжении всей операции перемещения полупрозрачное представление элемента следует за курсором мыши. Новая позиция элемента может располагаться в совершенно другом приложении. Веб сайты, и XUL приложения могут использовать эту функциональность для того, чтобы определить какие элементы страницы могут быть перемещены, а также определить элементы куда первые могут быть перемещены.
Использование функциональности drag и drop подразумевает выполнения следующих шагов:
copy
показывает, что перемещаемые данные копируются из прежнего места расположения в новое, move
показывает, что перемещаемые данные полностью переносятся на новое место, и link
показывает, что создаётся некая форма взаимодействия или связи между исходной точкой и точкой назначения. На протяжении операции перемещения, картинка которая следует за курсором мыши может меняться в зависимости от того, может ли элемент быть перемещён в область под курсором. Если перенос разрешён, перемещение может быть произведено. Смотрите Drag Effects для детальной информации.Mozilla и Firefox поддерживают ряд возможностей, которые выходят за рамку стандартной модели спецификации. Они позволяют пользователю перемещать несколько элементов и перемещать нестроковые данные. Для детальной информации смотрите Dragging and Dropping Multiple Items.
Для того, чтобы ознакомиться с общим списком данных поддерживаемых операцией drag and drop смотрите Recommended Drag Types.
Также доступны примеры с лучшей практикой использования операции drag and drop для перемещения данных разных типов:
Смотри DataTransfer для ссылки на объект DataTransfer.
Ряд событий срабатывают на протяжении всей процедуры drag and drop. Запомните, что только drag-события срабатывают на протяжении операции перемещения; события мыши, такие как mousemove
- нет. Также запомните, что события dragstart и
dragend
не срабатывают при попытке перенести файл из операционной системы в браузер.
Свойство dataTransfer всех событий перемещения содержит данные про все drag и drop операции.
dragstart
dragstart
пользователь начинает перетаскивание элемента. Обработчик данного события может быть использован для сохранения информации о перемещаемом объекте, а также для изменения изображения, которое будет ассоциировано с перемещением. Данное событие не срабатывает, когда некоторый файл будет переноситься из операционной системы в браузер. Для детальной информации Starting a Drag Operation.dragenter
dragover
dragleave
drag
drop
drop
вызывается для элемента, над которым произошло "сбрасывание" перемещаемого элемента. Событие отвечает за извлечение "сброшенных" данных и их вставку. Событие будет срабатывать только при завершении операции перетаскивания, например, событие не сработает, если пользователь отменит перетаскивание нажатием Esc, или не донесёт элемент, до цели. Для детальной информации смотрите Performing a Drop.dragend