2016-09-21 10 views
2

Ich habe eine große Leinwand von 1377x740px und andere Leinwand mit Dimmungen 200x200. Diese letzte Zeichenfläche wird als Vorschaumodus für das in einer Dropdown-Liste ausgewählte Objekt verwendet. Wenn ich den Namen des Objekts anwähle, muss das Objekt in der kleinen Leinwand mit den gleichen Proportionen erscheinen.siehe einen Teil der größeren Leinwand auf einer kleinen Leinwand

Meine Frage ist, wie kann ich das tun?

Ich habe einen Code, aber dieser Code, passt das Objekt in einer Breite und Höhe der kleinen Leinwand,

obj.set({ 
      scaleY: obj.height/(obj.getBoundingRect().height), 
      scaleX: obj.width/(obj.getBoundingRect().width), 

     }); 

Diese nicht funktioniert, Ich möchte so etwas wie: diese fit-object-css

wie die Box "enthält" das Bild.

Antwort

2

sloved mit diesem Code:

var BR = obj.getBoundingRect(); 
     if(BR.width>canvas2.width){ 
      while(BR.width+50>canvas2.width){ 
       canvas2.zoomToPoint(new fabric.Point(canvas2.getCenter().top, canvas2.getCenter().left), canvas2.getZoom()/1.2); 
       BR=obj.getBoundingRect(); 
      } 
     } 
     if(BR.width+3<canvas2.width){ 
      while(BR.width+50<canvas2.width){ 
       canvas2.zoomToPoint(new fabric.Point(canvas2.getCenter().top, canvas2.getCenter().left), canvas2.getZoom()*1.2); 
       BR=obj.getBoundingRect(); 
      } 
     } 
     if(BR.height>canvas2.height){ 
      while(BR.height>canvas2.height){ 
       canvas2.zoomToPoint(new fabric.Point(canvas2.getCenter().top, canvas2.getCenter().left), canvas2.getZoom()/1.2); 
       BR=obj.getBoundingRect(); 
      } 
     }