Я хочу узнать разницу между событиями dragover и dragenter в HTML5 drag & drop.
Мне не ясно о разнице.
Я хочу узнать разницу между событиями dragover и dragenter в HTML5 drag & drop.
Мне не ясно о разнице.
Событие dragenter происходит в тот момент, когда вы перетаскиваете что-то в целевой элемент, и затем оно останавливается. Событие перетаскивания происходит во время перетаскивания чего-либо до тех пор, пока вы его не отпустите.
Смотрите здесь:
$('.dropzone').on("dragover", function (event) {
console.log('dragover');
});
$('.dropzone').on("dragenter", function (event) {
console.log('dragenter');
});
Теперь посмотрите на консоль:
Как вы можете видеть, перетаскивание происходит один раз (когда вы перетаскиваете элемент на цель).
Но драгуверное событие происходит каждые несколько сотен миллисекунд.
Та же разница существует между перетаскиванием и перетаскиванием, перетаскивание происходит один раз, но перетаскивание происходит каждые несколько сотен миллисекунд.
На основе dragenter и dragover документа MDN...
Перетащите над
Событие dragover запускается, когда элемент или выбор текста перетаскивается над допустимой целевой точкой (каждые несколько сотен миллисекунд).
DragEnter
Событие dragenter запускается, когда перетаскиваемый элемент или выбор текста вводят действительную цель кавычки.
dragover запускается после небольшой задержки (каждых 350 мс, я думаю), пока курсор остается над элементом.
Событие dragenter вызывается только тогда, когда при перетаскивании перетаскиваемого элемента курсор входит в область элемента DOM, к которому прикреплено событие ondragenter.
С другой стороны, событие dragover вызывается "постоянно" при перетаскивании перетаскиваемого элемента, и курсор оказывается на экране внутри области элемента DOM, где этому элементу DOM прикреплено событие ondragover..
Разница в том, что (при перетаскивании), когда курсор входит в зону сброса,
dragoverпостоянно срабатывает (при перемещении мыши), покаdragenterсрабатывает только один раз, когда курсор "вошел"
function dragover(e) {
console.log("drag over")
}
function dragenter(e) {
console.log("drag enter!!!")
}
#target{
width: 200px;
height: 200px;
background: lightyellow;
border: 1px solid gold;
}
div[draggable]{
width: 60px;
height: 60px;
background: red;
}
<div draggable="true">Drag Me</div>
<div id="target" ondragover="dragover(event)" ondragenter="dragenter(event)">Drop Zone</div>