当我保持对连续将对象拖有时在移动后 5 6 拖/滴,看到有时不获取对象还原不回来,我不能用于以后。
基本上我有对两个对象组的 canvas 在 time 可以有最大的两个图像不是更多比,也看到图像
为什么会发生呢,我们如何防止?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
(function () { var canvas = new fabric.Canvas( 'canvas' ); var canvas_el = document.getElementById( 'canvas' ); var canvas1 = new fabric.Canvas( 'canvas1' ); var group; fabric.Image.fromURL( 'img/blank.png' , function (img) { var img1 = img.set({ left: 0 , top: 0 }); fabric.Image.fromURL( 'img/blank.png' , function (img) { var img2 = img.set({ left: 0 , top: 0 }); group = new fabric.Group([img1, img2], { left: 0 , top: 0 }); canvas.add(group) }); }); fabric.Image.fromURL( 'img/blank.png' , function (img) { var img1 = img.set({ left: 0 , top: 0 }); fabric.Image.fromURL( 'img/blank.png' , function (img) { var img2 = img.set({ left: 0 , top: 0 }); group1 = new fabric.Group([img1, img2], { left: 0 , top: 0 }); canvas1.add(group1) }); }); $(document).ready(function () { /* Define drag and drop zones */ var $drop = $('#canvas-drop-area,#canvas-drop-area1'), $gallery = $('td > #image-list li'), $draggedImage=null; /* Define the draggable properties */ $gallery.draggable({ helper: 'clone', start: function (e) { $draggedImage=event.target; $drop.css({ 'display': 'block' }) }, stop: function () { $(this).find('img').css({ /* 'opacity': 0.4 */ }); $drop.css({ 'display': 'none' }); $draggedImage=null; }, revert: true }); /* Define the events for droppable properties */ $drop.droppable({ over: function (event, ui) { $( this ).addClass( 'active' ); }, drop: function (event, ui) { var image =$draggedImage&& $draggedImage.src; console.log($draggedImage.alt); img_to_canvas(image,$draggedImage.alt,$(event.target).is( "#canvas-drop-area" )? 1 : 2 ); }, out: function (event, ui) { $( this ).removeClass( 'active' ); }, deactivate: function (event, ui) { $( this ).removeClass( 'active' ); } }); }); var img_to_canvas = function(image,sendfront,checkcanvas) { var img = new Image(); img.src = image; if (checkcanvas == '1' ){ if (sendfront== 'top' ){ fabric.util.loadImage(img.src, function (img) { group.item( 0 ).setElement(img); canvas.renderAll(); }); } else { fabric.util.loadImage(img.src, function (img) { group.item( 1 ).setElement(img); canvas.renderAll(); }); } canvas.calcOffset(); } else { if (sendfront== 'top' ){ fabric.util.loadImage(img.src, function (img) { group1.item( 0 ).setElement(img); canvas1.renderAll(); }); } else { fabric.util.loadImage(img.src, function (img) { group1.item( 1 ).setElement(img); canvas1.renderAll(); }); } canvas1.calcOffset(); } } })(); |
解决方法
更改
1
2
3
4
5
6
|
$drop.droppable({ over: function (event, ui) { $( this ).addClass( 'active' ); }, drop: function (event, ui) { var image =$draggedImage&& $draggedImage.src; |
为
1
2
3
4
5
6
|
$drop.droppable({ over: function(event, ui) { $( this ).addClass( 'active' ); }, drop: function(event, ui) { $draggedImage = ui.draggable.find( "img" ).get( 0 ); |
以上所述就是本文的全部内容了,希望大家能够喜欢。