提问者:小点点

如何用HTML5拖放API为被拖动的项目设置样式


我们正在为一个项目使用HTML5拖放API。

https://developer.mozilla.org/en-us/docs/web/api/html_drag_and_drop_api

一切正常工作,现在我们需要能够有不同的样式为原始项目源和为项目被拖动。

我们遇到的问题是被拖动的项目总是半透明的。

我们不允许共享代码,但这是我们用作基础的示例

https://www.w3schools.com/html/html5_draganddrop.asp

<!DOCTYPE HTML>
<html>
<head>
<script>
function allowDrop(ev) {
  ev.preventDefault();
}

function drag(ev) {
  ev.dataTransfer.setData("text", ev.target.id);
}

function drop(ev) {
  ev.preventDefault();
  var data = ev.dataTransfer.getData("text");
  ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>

<img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

</body>
</html>

我们需要的是

  • 将原始项源背景更改为灰色
  • 将正在拖动的项目的背景更改为蓝色,而不是半透明。

谢谢你的帮助。


共1个答案

匿名用户

这个概念在这个页面上得到了很好的解释--https://www.kryogenix.org/code/browser/custom-drag-image.html

其想法是将您想要显示为拖动图像的样式图像插入主体中,并使用css将其移出视图,并将该组件设置为“拖动图像”。

提示:在不同的浏览器中,行为是不同的,您可能需要测试它是否可以按照您的要求在其他浏览器中工作。