Согласно HTML вы поделились WebElement , который вы хотите DragAndDrop()
содержит атрибут draggable=true
перетаскиваемый
перетаскиваемый - это атрибут, который указывает, можно ли перетаскивать элемент, с собственным поведением браузера или с помощью HTML Drag and Drop API , draggable
может иметь следующие значения:
- true: элемент можно перетаскивать.
- false: элемент нельзя перетаскивать.
Примечание : Этот атрибут перечислен и не является логическим. Значение true
или false
является обязательным, а сокращение как <img draggable>
запрещено. Правильное использование: <img draggable="false">
.
Если этот атрибут не задан, его значение по умолчанию равно auto
, что означает, что поведение перетаскивания является поведением браузера по умолчанию: только выбор текста, изображения и ссылки могут быть втянутым Для других элементов событие ondragstart должно быть установлено для работы с перетаскиванием.
Native HTML5 Drag and Drop
Eri c Bidelman в статье Native HTML5 Drag and Drop , упомянутое, сделать объект перетаскиваемым просто, вам нужно только установить атрибут draggable=true
для элемента Вы хотите сделать подвижным. Например:
<div id="cols">
<div class="col" draggable="true"><header>X</header></div>
<div class="col" draggable="true"><header>Y</header></div>
<div class="col" draggable="true"><header>Z</header></div>
</div>
Чтобы разрешить перетаскивание других типов контента, вы можете использовать API HTML5 DnD. Тем не менее, с помощью CSS3 вы можете улучшить разметку, чтобы она выглядела как столбцы, а добавление курсора дает пользователям визуальный индикатор того, что что-то можно перемещать, но большинство браузеров создают призрачное изображение перетаскиваемого содержимого, а перетаскивание ничего не делает . Некоторые браузеры, в частности FF, требуют, чтобы в операции перетаскивания были отправлены данные .
Далее Реми Шарп в статье Перетаскивание Все, что упомянуто:
HTML 5 spe c говорит, что это должно быть так же просто, как добавить следующие атрибуты к разметке рассматриваемых элементов:
draggable="true"
Однако, это не работает полностью для Safari или Firefox. Для Safari вам нужно добавить следующий элемент к элементу:
[draggable=true] {
-khtml-user-drag: element;
}
Это начнет работать в Safari, и при его перетаскивании будет установлено пустое значение по умолчанию с объектом dataTransfer. Однако Firefox не позволит вам перетащить элемент, если вы вручную не установите для него некоторые данные на go.
Решение
Чтобы решить эту проблему, нам понадобится Обработчик событий dragstart, и мы дадим ему некоторые данные, которые нужно перетаскивать с помощью:
var dragItems = document.querySelectorAll('[draggable=true]');
for (var i = 0; i < dragItems.length; i++) {
addEvent(dragItems[i], 'dragstart', function (event) {
// store the ID of the element, and collect it on the drop later on
event.dataTransfer.setData('Text', this.id);
});
}
Ссылки
Пара ссылок: