javascript - HTML5 Draggable setDragImage 不适用于 Chrome 上的 Canvas

标签 javascript html google-chrome html5-canvas html5-draggable

我正在尝试使用 Canvas 作为原生 HTML5 拖放 API 中的拖动图像。

问题是它可以在 Firefox 上运行,但不能在 Chrome (58) 上运行,我无法确定问题所在。

代码:https://jsfiddle.net/196urLwd/5/


<div id="thing" draggable="true">DRAG ME</div>

function onDragStart(event){

    var canvas = document.createElement('canvas');
    var context = canvas.getContext('2d');

    canvas.width = 100;
    canvas.height = 20;

    context.fillStyle = '#333333';
    context.fillRect(0, 0, canvas.width, canvas.height);

    context.fillStyle = '#999999';
    context.font = 'bold 13px Arial';
    context.fillText('DRAGGING...', 5, 15);

    event.dataTransfer.setData('text', 'lorem ipsum');
    event.dataTransfer.effectAllowed = 'copy';    
    event.dataTransfer.setDragImage(canvas, -15, 9);

};

var theThing = document.getElementById('thing');
theThing.addEventListener('dragstart', onDragStart, false);

我做错了什么?

最佳答案

Chrome 似乎要求 Canvas 在 dom 中

document.body.append(canvas);

然后用一些CSS隐藏它

canvas{
  position:absolute;
  left:-100%;
}

https://jsfiddle.net/196urLwd/6/

关于javascript - HTML5 Draggable setDragImage 不适用于 Chrome 上的 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43790022/

相关文章:

javascript - 如何将 EL 变量传递给 javascript

javascript - 未捕获的类型错误 : Cannot set property '203' of undefined

css - 推特 Bootstrap : Getting Form Inputs and Buttons to be same the height in Chrome and Firefox

javascript - 事件监听器不会触发 JavaScript 上动态创建的元素

google-chrome - Chrome NET::ERR_CERT_AUTHORITY_INVALID 在 LocalHost 上的自签名证书错误

javascript - 如何在安全站点上的 chrome 扩展内容脚本中正确执行 ajax?

javascript - 根据各自的高度或内容显示更多和更少

javascript - 导入 json 文件时的 Typescript 编译器错误

javascript - 在 JavaScript 中创建回车按钮

javascript - 自定义 css 选择框的几个问题 -