HTMLElement: событие drop
Базовая Широко поддерживается
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Событие drop срабатывает, когда элемент или выделенный текст опускаются на допустимую цель перемещения. Чтобы обеспечить, что событие drop всегда срабатывает как ожидается, вы всегда должны включать вызов preventDefault() в части кода, которая обрабатывает событие dragover.
Это событие может быть отменено и может распространяться до объектов Document и Window.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или установите свойство обработчика событий.
addEventListener("drop", (event) => {});
ondrop = (event) => {};
Тип события
Свойства события
Помимо перечисленных ниже свойств, доступны свойства из родительского интерфейса Event.
-
DragEvent.dataTransferТолько для чтения -
Данные, передаваемые во время взаимодействия перетаскивания и помещения.
Примеры
Пример минимального перетаскивания и помещения
В этом примере есть перетаскиваемый элемент внутри контейнера. Попробуйте взять элемент, перетащить его над другим контейнером и отпустить.
Мы используем три обработчика событий:
- в обработчике события
dragstart, мы получаем ссылку на элемент, который пользователь перетащил - в обработчике события
dragoverдля целевого контейнера, мы вызываемevent.preventDefault(), что позволяет ему получать событияdrop. - в обработчике события
dropдля зоны размещения, мы обрабатываем перемещение перетаскиваемого элемента из исходного контейнера в зону размещения.
Для более полного примера перетаскивания и помещения см. страницу события drag.
HTML
<div class="dropzone"> <div id="draggable" draggable="true">This div is draggable</div> </div> <div class="dropzone" id="drop-target"></div>
CSS
body {
/* Prevent the user from selecting text in the example */
user-select: none;
}
#draggable {
text-align: center;
background: white;
}
.dropzone {
width: 200px;
height: 20px;
background: blueviolet;
margin: 10px;
padding: 10px;
}
JavaScript
let dragged = null;
const source = document.getElementById("draggable");
source.addEventListener("dragstart", (event) => {
// store a ref. on the dragged elem
dragged = event.target;
});
const target = document.getElementById("drop-target");
target.addEventListener("dragover", (event) => {
// prevent default to allow drop
event.preventDefault();
});
target.addEventListener("drop", (event) => {
// prevent default action (open as a link for some elements)
event.preventDefault();
// move dragged element to the selected drop target
if (event.target.className === "dropzone") {
dragged.parentNode.removeChild(dragged);
event.target.appendChild(dragged);
}
});
Результат
Спецификации
| Спецификация |
|---|
| HTML # ix-handler-ondrop |
| HTML # event-dnd-drop |
Совместимость с браузерами
| Рабочий стол | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
drop_event |
1 | 12 | 9 | 12 | 3.1 | 18 | 9 | 12 | 2 | 1.0 | 4.4 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/drop_event