我尝试更改dom中元素的位置,但出现此错误。 我使用elementRef。
HTML:
<div class="container">
<div class="original-pdf">
<pdf-viewer *ngIf="pdfSrc" [(page)]="pageVariable" [show-all]="true" [render-text]="true" [original-size]="true"
[src]="pdfSrc">
</pdf-viewer>
<img #Signature *ngIf="imageExpress" class="signature-image" [src]="imageExpress | safeHtml" cdkDragBoundary=".original-pdf"
(cdkDragEnded)="onDragEnded($event)" cdkDrag>
</div>
</div>
TS:
import { Component, AfterViewInit, ViewChild, ElementRef } from '@angular/core';
@ViewChild('Signature', {static: false }) Signature: ElementRef;
ngAfterViewInit() {
this.openPdf();
this.openImage();
setTimeout(() =>{
console.log(this.Signature.nativeElement.offsetTop);
this.Signature.nativeElement.offsetTop = 0;
}, 1000);
}
答案 0 :(得分:1)
来自MDN DOC
HTMLElement.offsetTop只读属性返回的距离 相对于offsetParent节点顶部的当前元素。
offsetTop
是只读属性。所以这就是为什么您会收到这样的错误。
Angular Cannot assign to read only property 'offsetTop' of object '[object HTMLImageElement]'
也许您可以使用top
属性代替offsetTop
this.Signature.nativeElement.style.top = "0px";