html - Angular 2 : Get position of HTML element

标签 html angular angular2-hostbinding

我正在尝试在 Angular 2 中实现一个自定义指令,用于移动任意 HTML 元素。到目前为止,一切正常,除了我现在不知道如何在单击它并想开始移动时获取 HTML 元素的初始位置。我用这两个主机绑定(bind)绑定(bind)到我的 HTML 元素的 topleft 样式:

/** current Y position of the native element. */
@HostBinding('style.top.px') public positionTop: number;

/** current X position of the native element. */
@HostBinding('style.left.px') protected positionLeft: number;

问题是它们一开始都是undefined。我只能更新也会更新 HTML 元素的值,但我无法读取它?应该是这样吗?如果是,我有什么替代方法来检索 HTML 元素的当前位置。

最佳答案

<div (click)="move()">xxx</div>
// get the host element
constructor(elRef:ElementRef) {}

move(ref: ElementRef) {
  console.log(this.elRef.nativeElement.offsetLeft);
}

另见 https://stackoverflow.com/a/39149560/217408

关于html - Angular 2 : Get position of HTML element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42576008/

相关文章:

javascript - 使用 javascript 在页面内加载新的 HTML 段

html - 如何在适用于 IE9 的图像上制作圆形剪贴蒙版?

javascript - 如何使导航回到顶部透明

angular - onbeforeunload 确认对话框在使用 angular2 @HostListener 时不显示

javascript - html - 滚动条和模态窗口

Angular - ag-grid - 动态添加列

angular - 如何连接 Output() 和 Input() 装饰器?

css - Angular 2动态添加样式到主机

AoT 编译中的 Angular2 主机绑定(bind)问题

css - Angular2如何在拖放时更改背景颜色