Spec-Zone.ru › Web APIs

HTMLElement: событие dragover

Базовая поддержка Широко доступно

Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Событие dragover срабатывает, когда элемент или выделенный текст перетаскивается над допустимой зоной размещения (каждые несколько сотен миллисекунд).

Это событие может быть отменено и может подниматься до объекта Document и Window.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или задайте обработчик события.

addEventListener("dragover", (event) => {});

ondragover = (event) => {};

Тип события

Объект DragEvent. Наследуется от Event.

Событие UIEvent MouseEvent DragEvent

Свойства события

Помимо перечисленных ниже свойств, доступны свойства из родительского интерфейса 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 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-ondragover
HTML
# event-dnd-dragover

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
dragover_event 1 12 9 12 3.1 18 9 12 2 1.0 4.4

См. также

  • Другие события «перетащить и отпустить»:

    • drag
    • dragstart
    • dragend
    • dragenter
    • dragleave
    • drop

© 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/dragover_event

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API