У меня есть элемент, который можно перетаскивать. Я хочу удалить призрачное изображение, так как я буду создавать его другим способом.
Однако Google Chrome не позволяет остановить появление призрачного изображения с помощью setDragImage()
. Пустое изображение создается перед перетаскиванием, и я использую setDragImage()
внутри обработчика событий dragstart
, поэтому я не вижу, что делаю неправильно. Призрачное изображение не должно появляться.
Вот пример:
const blankCanvas = document.createElement('canvas');
document.querySelector('.item')
.addEventListener('dragstart', (e) => {
e.dataTransfer.setDragImage(blankCanvas, 0, 0);
});
.item {
display: inline-block;
width: 5rem;
height: 5rem;
overflow: hidden;
margin: 1rem;
border: 2px solid #fe0000;
cursor: pointer;
}
.item__img {
width: 100%;
height: auto;
}
<div draggable="true" class="item">
<img src="https://i.stack.imgur.com/drhx7.png" alt="" class="item__img">
</div>
В Chrome, если вы перетащите поле с красной рамкой, появится фантомное изображение, хотя я использую setDragImage()
. В Firefox все работает корректно (а в Edge... даже нет этой функции).
Моя версия Chrome 66.