我有一个可拖动的元素。我想删除重影图像,因为我将以另一种方式创建它。
但是,谷歌浏览器不允许我使用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。