Verwendung von angularjs in meiner Anwendung und Verwendung von fabric.js für Canvas-Funktionen.Wie platziere ich Leinwand nur auf einem zentrierten Bild und nicht auf der gesamten Seite?
Hier ist mein HTML-Code:
<div id="imageContainer" style=" width: 100%; height: 90vh; overflow: hidden">
<img id="imageId" align="middle" ng-src="{{image}}" on-load="setCanvasOnLoad()"/>
</div>
<div id="canvas-section">
<canvas id="drawingCanvas"></canvas>
</div>
Mein Bild in der Mitte der Seite ausgerichtet ist. Die Leinwand ist jedoch über die Seite verteilt. Hier ist, wie ich eine Leinwand auf das Bild zu erstellen:
var deferred = $q.defer();
$timeout(function() {
var image = angular.element(document.querySelectorAll("#reboxImage"))[0];
var drawingCanvasObject = angular.element(document.querySelectorAll("#drawingCanvas"))[0];
var canvasContainer = angular.element(document.querySelectorAll("#canvas-section"))[0];
drawingCanvasObject.width = image.offsetWidth;
drawingCanvasObject.height = image.offsetHeight;
canvasContainer.top = image.getBoundingClientRect().top;
canvasContainer.left = image.getBoundingClientRect().left;
drawingCanvasObject.style.zIndex = 15;
drawingCanvasObject.style.position = "absolute";
if (drawingCanvasObject.width > 0 && drawingCanvasObject.height > 0) {
if (!MyService.getCanvas()) {
MyService.setCanvas(new fabric.Canvas('drawingCanvas', {selection: false}));
}
}
return deferred.promise;
Die CSS für # Leinwand-Abschnitt wird wie folgt:
#canvas-section{
z-index: 10; /* <- higher than your canvases if it needs to go on top */
position: absolute;
left: 0;
top: 0;
}
Wie können wir sicherstellen, dass die Breite der Leinwand, Höhe, Position, links, top usw. sind immer mit dem Bild ausgerichtet und gleich?
Ich tat das, hat nicht geholfen. :( – Tisha
Eine Sache ist, dass Sie die oberste und linke Eigenschaft des canvasContainer setzen, aber es hat keine absolute Position, das drawingCanvasObject hat, also stellen Sie links und oben auf das drawingCanvasObject statt. Bitte lassen Sie uns auch wissen, was genau funktioniert nicht gerade? Alles? Oder nur die linke und obere Positionierung? –
Ich bin nicht in der Lage, die linke und obere Positionierung zu ändern, auch wenn ich die linke und obere auf die Zeichnung setzen CanvasObject – Tisha