我无法为小型自定义上下文菜单获取正确的值。通过设置样式时ngStyle
。当像下面那样做时,组件将被正确渲染,但console.log
会为元素的实际位置显示错误的值(-9999px
)。
我不想用 setTimeout 之类的东西来破解它。有没有更好的方法来做到这一点,还是可以听风格改变!?
组件.html
<div class="context-menu" style="position: fixed; top: -9999px; left: -9999px; z-index: 99999" [ngStyle]="contextMenuStyles" #contextMenu></div>
组件.ts
Class XXX {
onContextmenu($event: MouseEvent) {
$event.preventDefault();
const top = `${$event.y}px`;
const left = `${$event.x}px`;
this.contextMenuStyles = {top, left};
console.log(this.contextMenu.nativeElement.getBoundingClientRect());
}
}