【发布时间】:2017-08-08 14:53:13
【问题描述】:
我在使用 JQuery 处理 FabricJS 时遇到问题。
选择一个对象并单击删除没有问题。
这是我的代码演示 Fiddle
我可以在 FabricJS 之外进行拖放和删除操作(只需拖动不相关的元素即可删除),但我很难将两者结合起来。
也许我需要在画布中合并删除按钮才能使“拖放”起作用?当我尝试这个时,#delete 元素消失了。
JS
var canvas = new fabric.Canvas('canvas');
$("#delete").click(function() {
deleteObjects();
});
//Test objects on the canvas
//Circle
var circle = new fabric.Circle({
left: 200,
top: 150,
radius: 30,
fill: "#ff0072"
});
circle.hasRotatingPoint = true;
canvas.add(circle);
// adding triangle
var triangle = new fabric.Triangle({
left: 130,
top: 150,
strokeWidth: 1,
width: 70,
height: 60,
fill: '#00b4ff',
selectable: true,
originX: 'center'
});
triangle.hasRotatingPoint = true;
canvas.add(triangle);
//Select all objects
function deleteObjects() {
var activeObject = canvas.getActiveObject(),
activeGroup = canvas.getActiveGroup();
if (activeObject) {
canvas.remove(activeObject);
}
}
//Drag and drop delete
$(function() {
$('#delete').droppable({
drop: function(event, ui) {
deleteObjects();
}
});
});
HTML
<section class="canvas__container">
<canvas id="canvas" width="400" height="400"></canvas>
<div id="delete">♻</div>
</section>
(我没有粘贴我的 CSS,因为这不是特别相关)
【问题讨论】:
-
我在下面留下了答案,如果您还需要什么,请告诉我?您倾向于包含在画布中可能是您最好的选择。
-
@TimHarker 非常感谢您的帮助,这太棒了。没有别的了,谢谢,我会努力让自己走得更远,我会从我的斗争中学习:D,并花一些时间查看您的代码以更好地理解它
-
不用担心。如果您有任何问题,请发布另一个问题,很乐意再次提供帮助。
标签: javascript jquery canvas draggable fabricjs