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());
  }
}