如何删除拖动图像时的重影。我们已经尝试了代码,它在Firefox和Chrome中工作,但在Safari中不工作。请任何一个帮助我的代码的错误是什么。https://jsfiddle.net/rajamsr/Lfuq5qb6/
document.addEventListener("dragstart", function( event ) {
dragged = event.target;
event.dataTransfer.setDragImage(dragged, 11111110, 10);
}, false);
7条答案
按热度按时间ylamdve61#
您可以通过显示空/透明图像来防止显示重影预览:
j2qf4p5b2#
不要使用
event.target
作为setDragImage
的参数,这可能会导致内存问题。您可以随时添加自定义图像,该图像也可以是透明PNG。
下面是一个例子。
另一种选择是克隆节点元素并将其
visibility
设置为hidden
。但要使此选项起作用,必须将克隆的元素添加到DOM中。克隆节点的示例如下所示。我没有完全隐藏节点,所以你可以看到发生了什么。
hmmo2u0o3#
您可以只使用
event.target
并使用窗口的outerWidth
和outerHeight
来定位它oyjwcjzk4#
JSfiddle不再打开,所以我不理解上下文,但在Chrome中对我有效
niknxzdl5#
您的代码导致内存问题。
相反,使用css来停止用户拖动/选择,这在大多数浏览器中都可以工作,但在firefox中似乎有一个bug,它不起作用,因此将
ondragstart="return false;"
添加到img
标签中以修复此问题请参阅https://jsfiddle.net/Lfuq5qb6/1/ibrsph3r6#
enter link description here
kyvafyod7#
您可以将img draggable属性设置为false。
要禁用对图像的选择,可以使用