javascript - 像图像一样拖放 Canvas

标签 javascript jquery html canvas

我们公司的网站使用 canvas 元素在我们的页面上呈现图形和图表。但是,这些不能拖放到 Microsoft Word 文档或电子邮件客户端中。因此,我设计了一种方法,通过从 Canvas 获取 base64 数据,在按下鼠标时用外观相同的 img 替换 Canvas 。

Canvas 在 mousedown 时被图像正确替换,并在 mouseup 时放回原处。但是,这不允许拖放图像标签,可能是因为替换发生得太晚了。

Here is a working JSFiddle example.

我们使用一个插件,该插件还为图表的特定区域提供工具提示,因此我无法替换悬停在/悬停时的元素,因为这会使工具提示停止工作。

如何使拖放图像本身成为可能?

最佳答案

在您的应用开始时预构建您的 img 元素,而不是花时间“即时”完成。

使用内存 Canvas 创建图表:

var canvas1=document.createElement('canvas');
// draw your chart on canvas1

然后从 Canvas 创建 img 元素

var chart1=new Image();
document.body.appendChild(chart1);
chart1.src=canvas1.toDataURL();

关于javascript - 像图像一样拖放 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34453494/

相关文章:

c# - ASP.NET 中的数据列表不会显示?

javascript - 我可以使用什么策略只将部分代码加载到 github?

javascript - 按顺序加载网页内容

javascript - 发送异步请求时检测变量何时 != undefined 的更好方法

javascript - css透明圆 Angular 分隔符

html - 图像的曲线样式

javascript - AngularJS 1.3 或 AngularJS 1.2.x

javascript - 正确地将参数传递给 react 方法

javascript - 设置 cookie 无法按预期工作

javascript - 如何使用数据属性提取数据?