offset 属性

Point<num> offset

鼠标指针在目标节点坐标中的位置。

如果事件已触发后目标节点移动,或者元素受到 CSS 变换的影响,此值可能在不同平台上有所不同。

实现

Point get offset {
  if (JS('bool', '!!#.offsetX', this)) {
    var x = JS('int', '#.offsetX', this);
    var y = JS('int', '#.offsetY', this);
    return new Point(x as num, y as num);
  } else {
    // Firefox does not support offsetX.
    if (!(this.target is Element)) {
      throw new UnsupportedError('offsetX is only supported on elements');
    }
    Element target = this.target as Element;
    var point = (this.client - target.getBoundingClientRect().topLeft);
    return new Point(point.x.toInt(), point.y.toInt());
  }
}