Advertisement
Guest User

Untitled

a guest
Feb 24th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.36 KB | None | 0 0
  1. /*_____________Event Handling_______________*/
  2.  
  3. canvas.on('object:selected', function(event) {
  4. changeSelectedObjectColorOpacity(event.target);
  5. });
  6. canvas.on('mouse:over', function(event) {
  7. changeSelectedObjectColorOpacity(event.target);
  8. });
  9. canvas.on('mouse:out', function(event) {
  10. revertObjectColorOpacity(event.target);
  11. });
  12. canvas.on('selection:cleared', function(event) {
  13. revertObjectColorOpacity(event.target);
  14. });
  15.  
  16. /*_________Change Color function_____________*/
  17.  
  18. var selected_fill_color = 'grey';
  19. var selected_object_opacity = 0.5;
  20.  
  21. function changeSelectedObjectColorOpacity(object) {
  22. if (object == null) { return;}
  23. original_fill_color = object.fill;
  24. original_opacity = object.opacity;
  25.  
  26. object.set({fill: selected_fill_color, opacity: selected_object_opacity});
  27. canvas.renderAll();
  28. }
  29.  
  30. function revertObjectColorOpacity(object) {
  31. if (object == null) { return;}
  32. object.set({fill: original_fill_color, opacity: original_opacity});
  33. canvas.renderAll();
  34. }
  35.  
  36. var canvas = new fabric.Canvas('c');
  37. var selectedObjs = [];
  38. var mouseIn = null;
  39. /*_____________Adding shapes_______________*/
  40.  
  41. var pol = new fabric.Polygon([
  42. { x: 100, y: 0 },
  43. { x: 150, y: 50 },
  44. { x: 150, y: 100 },
  45. { x: 50, y: 100 },
  46. { x: 50, y: 50 }], {
  47. left: 50,
  48. top: 150,
  49. angle: 0,
  50. fill: 'green'
  51. }
  52. );
  53.  
  54. var pol2 = new fabric.Polygon([
  55. { x: 300, y: 50 },
  56. { x: 300, y: 100 },
  57. { x: 200, y: 100 },
  58. { x: 200, y: 50 }], {
  59. left: 300,
  60. top: 200,
  61. angle: 0,
  62. fill: 'blue'
  63. }
  64. );
  65. canvas.add(pol, pol2);
  66.  
  67. /*_____________Event Handling_______________*/
  68.  
  69. canvas.on('object:selected', function (event) {
  70. selectedObjs = [];
  71. if (event.target._objects !== undefined) {
  72. selectedObjs = event.target._objects;
  73. } else {
  74. selectedObjs.push(event.target);
  75. }
  76. for (i = 0; i < selectedObjs.length; i++) {
  77. if (selectedObjs[i] != mouseIn) {
  78. changeSelectedObjectColorOpacity(event.target);
  79. }
  80. }
  81. });
  82.  
  83. canvas.on('mouse:over', function (event) {
  84. mouseIn = event.target;
  85. var alreadySelected = false;
  86. for (i = 0; i < selectedObjs.length; i++) {
  87. if (event.target == selectedObjs[i]) {
  88. alreadySelected = true;
  89. }
  90. }
  91.  
  92. if (!alreadySelected) {
  93. changeSelectedObjectColorOpacity(event.target);
  94. }
  95. });
  96.  
  97. canvas.on('mouse:out', function (event) {
  98. var alreadySelected = false;
  99. for (i = 0; i < selectedObjs.length; i++) {
  100. if (event.target == selectedObjs[i]) {
  101. alreadySelected = true;
  102. }
  103. }
  104. if (!alreadySelected) {
  105. revertObjectColorOpacity(event.target);
  106. }
  107. mouseIn = null;
  108. });
  109.  
  110. canvas.on('selection:cleared', function (event) {
  111. console.log('clear');
  112. selectedObjs = [];
  113. revertObjectColorOpacity(event.target);
  114. });
  115.  
  116. /*_________Change Color function_____________*/
  117.  
  118. var selected_fill_color = 'grey';
  119. var selected_object_opacity = 0.5;
  120.  
  121. function changeSelectedObjectColorOpacity(object) {
  122. if (object == null) { return; }
  123. original_fill_color = object.fill;
  124. original_opacity = object.opacity;
  125. object.set('fill', selected_fill_color);
  126. object.set('opacity', selected_object_opacity);
  127. canvas.renderAll();
  128. }
  129.  
  130. function revertObjectColorOpacity(object) {
  131. if (object == null) { return; }
  132. object.set('fill', original_fill_color);
  133. object.set('opacity', original_opacity);
  134. canvas.renderAll();
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement