HTML5 将图像从工具栏拖放到画布

Posted

技术标签:

【中文标题】HTML5 将图像从工具栏拖放到画布【英文标题】:HTML5 drag and drop images from a toolbar to a canvas 【发布时间】:2014-03-06 12:47:03 【问题描述】:

我进行了很多搜索,但找不到与我的需求相关的场景。我想将图像从工具栏拖放到画布,而不是从画布拖放到另一个画布。

请帮助我。提前致谢

【问题讨论】:

【参考方案1】:

演示:http://jsfiddle.net/m1erickson/2Us2S/

使用 jquery-ui 创建可拖动元素。

$("#myToolbarImageElement").draggable();

使用键值对的数据负载加载这些元素。

在您的情况下,这可能是您想要在画布上绘制的图像对象。

$("#myToolbarImageElement").data("image",myImageObject);

将您的画布设置为拖放区:

$("#myCanvas").droppable(drop:myDropHandler);

当您将元素放在画布上时,您可以读取数据(图像)并将该图像绘制到画布上。

function myDropHandler(e,ui)
    var x = ui.offset.left - $("#myCanvas").offset.left;
    var y = ui.offset.top  - $("#myCanvas").offset.top;
    var image = ui.draggable.data("image");
    // draw on canvas
    drawImage(image,x,y);

这是一个关于使用 jquery-ui 使用数据有效负载拖放元素的不错的教程:

http://www.elated.com/articles/drag-and-drop-with-jquery-your-essential-guide/

【讨论】:

非常感谢。你能帮我让它更像一个工作流,我可以用箭头连接这些图像,就像你知道那些连接点一样,也可以改变画布上拖动项目的位置?在这种情况下,当拖到画布上时,它有点像静态。 ? 这是在可拖动画布矩形之间创建连接器的链接:***.com/questions/18575006/connect-canvas-with-lines 这应该可以帮助您入门。祝你的项目好运! 嗨,我使用了上面的示例,我可以进行拖放,但它只发生一次,我需要它发生与用户拖动图像一样多的次数,并且我使用了 jquery ui 克隆属性和一旦它掉到画布上,我就无法将它们拖到画布上......你能帮我吗? @markE 如何制作适用于触摸屏的版本。我无法让那部分工作。 触摸屏拖放是一个完全不同的问题。您可能会使用“jquery-mobile”标签提出一个新问题。

以上是关于HTML5 将图像从工具栏拖放到画布的主要内容,如果未能解决你的问题,请参考以下文章

将图像拖放到画布可放置区域

在组合fabric.js和jQuery时,将图像拖放到画布不起作用

将图像拖放到画布(FabricJS)

HTML5 在窗口之间拖放

图像到画布 / HTML5 转换 [关闭]

如何将文件从 HTML5 拖放到 Rails 3 应用程序和回形针?