完全不透明度的e.dataTransfer.setDragImage

时间:2014-06-30 21:39:37

标签: html5 drag-and-drop

我正在使用HTML5拖放API。我使用可见节点设置了拖动图像,但它是幻影/部分透明。

设置拖动图像:

evt.dataTransfer.setDragImage(someVisibleElement, -12, -8);

我看到的每个例子都是半透明的:

http://www.kryogenix.org/code/browser/custom-drag-image.html

看起来你无法在这个元素上设置不透明度,这是真的吗? MDN docs中没有选项,但我希望有人可以确认。如果我们可以设置图像,将我们锁定在50%不透明度似乎很奇怪。

3 个答案:

答案 0 :(得分:4)

我没有找到简单的方法

但你可以这么做:-D。 创建/克隆元素你想要看到拖动,追加到dom,设置位置固定,在dragstart和dragend之间根据你的鼠标位置更新他的位置。

答案 1 :(得分:1)

您无法在此元素上设置不透明度。希望能够指出那些注意到这种情况的规范或错误报告的部分。

答案 2 :(得分:0)

使用 event.dataTransfer.setDragImage(new Image(), 0, 0) 隐藏原始图像; 在拖动启动。 onDrag 获取重影图像,使用 event.pageX、eventet.pageY 更新位置

onDrag(event){
    event.preventDefault();
    const parentElement = <HTMLDivElement>(document.querySelector('.darggable-ghost-wrapper'));
    parentElement.style.position = "fixed";
    parentElement.style.left = event.pageX  + "px";
    parentElement.style.top = event.pageY + 5 +  "px";
    parentElement.style.opacity = ArhitectUtlityConstants.GHOSTPREVIEW.ghostOpacity;
    parentElement.style.border = "1px solid green !important";
}