HTML5 Перетаскивание (Drag and Drop) — часть стандарта HTML5.
Перетаскивание (Drag and drop) — распространённая функция, которая заключается в захвате объекта и перетаскивании его в другое место.
будетexample.comперетаскивать значки в прямоугольную область.
Перетаскивание
Перетаскивание — распространённая функция, позволяющая захватывать объекты и перетаскивать их в другое место.
В HTML5 перетаскивание является стандартной функцией, позволяющей перетаскивать любой элемент.
Поддержка браузеров
![]()
![]()
![]()
![]()
![]()
Internet Explorer 9+, Firefox, Opera, Chrome и Safari поддерживают перетаскивание.
Примечание:Safari 5.1.2 не поддерживает перетаскивание.
Пример перетаскивания в HTML5
Следующий пример — простой пример перетаскивания:
Пример
Попробуйте »
Это может показаться сложным, но мы можем изучить различные части событий перетаскивания отдельно.
Сделайте элемент перетаскиваемым
Сначала, чтобы сделать элемент перетаскиваемым, установите атрибут draggable в true:
Что перетаскивать - ondragstart и setData()
Затем укажите, что происходит при перетаскивании элемента.
В приведённом выше примере атрибут ondragstart вызывает функцию drag(event), которая задаёт перетаскиваемые данные.
Метод dataTransfer.setData() задаёт тип данных и значение перетаскиваемых данных:
{
ev.dataTransfer.setData("Text",ev.target.id);
}
Text представляет тип данных, добавляемых к перетаскиваемому объекту. Значением является id перетаскиваемого элемента ("drag1").
Куда сбросить - ondragover
Событие ondragover указывает, куда следует поместить перетаскиваемые данные.
По умолчанию данные или элементы нельзя помещать внутрь других элементов. Чтобы разрешить размещение, необходимо предотвратить обработку элемента по умолчанию.
Это делается путем вызова метода event.preventDefault() события ondragover:
Сброс - ondrop
Когда сбрасываются перетаскиваемые данные, возникает событие drop.
В приведенном выше примере атрибут ondrop вызывает функцию drop(event):
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
Пояснение к коду:
- Вызов preventDefault() для предотвращения стандартной обработки данных браузером (поведение по умолчанию для события drop — открытие ссылки).
- Использование метода dataTransfer.getData("Text") для получения перетаскиваемых данных. Этот метод возвращает любые данные того же типа, которые были заданы в методе setData().
- Перетаскиваемые данные — это id перетаскиваемого элемента ("drag1").
- Присоедините перетаскиваемый элемент к целевому элементу (цели сброса).
Другие примеры
Перетаскивание изображений туда и обратно
Как перетаскивать изображения между двумя элементами <div>.