2016-12-07 87 views
2

https://jsfiddle.net/techticchetan/p638quv8/3/帶去面料js

我想選擇rect對象時點擊杯圖像。

請檢查以下鏈接。我想要做這樣的事情。 http://preview.codecanyon.net/item/fancy-product-designer-woocommercewordpress/full_screen_preview/6318393?_ga=1.254133448.1940140524.1450868289

感謝,

var canvas = new fabric.Canvas('cv' ) ; 
 
var rect; 
 
    
 
fabric.Image.fromURL('http://tmgraphics.biz/test/HTML5_CANVAS%20_TESTING/test-7-21-15/test33/77000_Lime.png', function(img) { 
 
var hRatio = canvas.width/img.width ; 
 
    var vRatio = canvas.height/img.height ; 
 
    var ratio = Math.min (hRatio, vRatio); 
 
    var centerShift_x = (canvas.width - img.width*ratio)/2; 
 
    var centerShift_y = (canvas.height - img.height*ratio)/2; 
 
    
 
widdy = img.width*ratio; 
 
hiddy = img.height*ratio; 
 
    
 
img.set({ 
 
lockMovementX: true, 
 
    lockMovementY: true, 
 
    hasControls: false, 
 
    left: centerShift_x, 
 
    top: centerShift_y, 
 
    width: widdy, 
 
    height: hiddy, 
 
    selectable:false 
 
    }); 
 
    canvas.add(img) ; 
 
    if (rect) img.bringToFront(); 
 
     
 
    }); 
 
    rect = new fabric.Rect({ 
 
      top : 5, 
 
      left : 170, 
 
      width : 200, 
 
      height : 300, 
 
      stroke: 'blue', strokeWidth: 2, 
 
      fill : '' 
 
     }); 
 
canvas.add(rect); 
 
canvas.bringToFront(img)
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<canvas id="cv" width="400" height="400" style="border:1px solid black;"></canvas>

+0

將您的代碼添加到問題。 –

+0

我已經添加jsfiddle鏈接「https://jsfiddle.net/techticchetan/p638quv8/3」 –

回答

1

我已經得到答案了面料事件系統上的文檔。請檢查此https://github.com/kangax/fabric.js/issues/3506鏈接

+0

好的。我明白你現在想要做什麼。你的問題一點都不清楚。 –

+0

好的,謝謝你的回答 –

0

這是相當簡單的,只需添加一個事件處理的圖像對象您已經將其添加到畫布後:

... 
canvas.add(img) ; 
if (rect) img.bringToFront(); 

// Add event handler 
img.on('mouseup', function() { 
    canvas.setActiveObject(rect); 
}); 

如果您還想將其移動到前面,則:

rect.bringToFront(); 
canvas.renderAll(); 

我建議你閱讀在tutorial