我想在HTML5拖动操作期间自定义鼠标光标,因为将rowDragImage设置为表示被拖动对象(不是在IE中)的东西是一回事,但是叠加标准鼠标光标通常看起来非常糟糕。当'DragImage'很小并且无法控制'DragImage'的不透明度时尤其如此。
我在放置目标上指定了各种CSS游标,但在拖动过程中Chrome和Firefox都会禁用/忽略这些游标。这给我们留下了标准的没有吸引力的箭头和点缀框。
这是小提琴: http://jsfiddle.net/MCAU/wect6xuy/8/
这是HTML:
<img draggable id="i" src="http://icons.iconarchive.com/icons/icons8/windows-8/64/Diy-Paint-Bucket-icon.png"/>
<table>
<tr>
<td class="a">Copy</td>
<td class="b">None</td>
</tr>
<tr>
<td class="c">Move</td>
<td class="d">Crosshair</td>
</tr>
</table>
这是CSS:
td {
padding: 30px;
font-size: 2em;
font-family: arial;
border: 3px solid white;
background-color: #eee;
border-spacing: 10px;
}
.a { cursor: copy;}
.b { cursor: none;}
.c { cursor: move;}
.d { cursor: crosshair;}
img {
cursor: move;
cursor: -moz-grabbing;
}
这是jQuery:
var i = $('#i');
i.on('dragstart', function(e) {
e.originalEvent.dataTransfer.setData('text', 'foo');
e.originalEvent.dataTransfer.setDragImage(this, this.offsetWidth/2, this.offsetHeight/2);
});
$('td').on('dragenter, dragover', function(e) {
e.preventDefault();
e.stopPropagation();
return false;
});
$('td').on('drop', function(e) {
$(this).append(i);
e.preventDefault();
});
有没有办法在HTML5拖动过程中隐藏或更改鼠标光标?
答案 0 :(得分:-1)
刚遇到同样的问题。我找到了一个有帮手的工作解决方案。
这是脚本:
$('#i').draggable({
helper: function(e) {
return '<img id="drag" src="http://icons.iconarchive.com/icons/icons8/windows-8/64/Diy-Paint-Bucket-icon.png">';
}
});
这必须添加到你的CSS ......
#drag {cursor: none;}
看小提琴 https://jsfiddle.net/wect6xuy/31/
请注意我已将jQuery UI添加到库中。这是我让它运行的唯一方式。
希望这有帮助