我需要将offesetTop和offsetLeft设置为我的viewchild元素,以将其定位在另一个元素的悬停上。这是一个工具提示,所以这就是我的尝试:
<div (mouseover)="showPopup($event, price)"></div>
<div #tooltip>Some text</div>
这是我的div,在TS里面我有:
@ViewChild('tooltip') tooltip: ElementRef;
showPopup(event, price) {
price.show = true;
this.tooltip.nativeElement.offsetTop = event.target.offsetTop;
this.tooltip.nativeElement.offsetLeft = event.target.offsetLeft;
}
但是我收到以下错误:
无法指定只读属性&#39; offsetTop&#39;对象&#39; [对象HTMLDivElement]&#39; 。有什么建议吗?
答案 0 :(得分:8)
offsetTop
和offsetLeft
只在浏览器中显示,与Angular没有任何关联。
也许这对你有用:
<div [style.top.px]="top" [style.left.px]="left">Some text</div>
class MyComponent {
top: number;
left: number;
}