html - 控制HTML5拖放效果的外观

标签 html drag-and-drop draggable appearance

有没有一种方法可以使用 HTML5 拖放 API 来控制“您正在拖动的内容”的外观?

通常,任何可拖动的 HTML 元素都会变为半透明并跟随您的光标,直到您停止/放下。我想对其进行控制,以便我可以从元素内的任何位置开始拖动,但当您真正开始拖动时,我只能让一个小图像跟随光标,正好是光标所在的位置。

实际的例子是:要拖动的东西的列表,每个都是一个小图像和一些文本,用于表示要拖到它旁边的东西的名称。我希望能够在图像或文本上方的元素中的任何位置开始拖动,但只有图像跟随您的光标,并直接在光标下方,而不是从您开始拖动它的位置偏移。

我可以想出一些方法来欺骗它(一个隐藏的元素出现在鼠标光标所在的位置,当你开始拖动时,它就是你实际拖动的东西),或者求助于经典的 Javascript 拖放。

谢谢

最佳答案

我认为 .setDragImage(element, x, y); 可能就是您要找的。

function handleDragStart(e) {
    var dragIcon = document.createElement('img');
    dragIcon.src = 'http://...';
    dragIcon.width = 100;
    e.dataTransfer.setDragImage(dragIcon, x, y);
}

this.addEventListener('dragstart', handleDragStart, false);

此处示例:jsfiddle.net/cnAHv/

关于html - 控制HTML5拖放效果的外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17055044/

相关文章:

javascript - 在滴管插件jquery中滴下图像预览

javascript - 如果可拖动元素应用了转换,则 jquery 可拖动包含不起作用

javascript - Google Map V3 上的可拖动图标 - 设置为 Draggable=True,但不能拖动它

javascript - 如何使用 javascript 在 safari 中启动全屏?

javascript - UIWebView什么时候完成图像加载?

javascript - 使用SVG在html页面中显示动态圆

java - 用于拖放图像文件的面板,带有 java swing

javascript - 除了 input[type=text] 之外的所有内容都禁用选择

java - 如何在拖放过程中显示图标

jquery - CSS或jQuery修改以防止屏幕闪烁