有没有办法使用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,y); } this.addEventListener('dragstart',handleDragStart,false);