Position

从 Prototype 1.6 开始,Position 对象已经完全被 Element 对象的相关方法所取代。

Position 对象提供了一系列方法用于解决 DOM 元素的位置和布局方面的问题。它主要是给第三方的 UI 库如 script.aculo.us 使用的。

方法

absolutize
不推荐

absolutize(element)

转换元素的定位方式为绝对定位,并且不改变元素在页面中的位置。
译注:该方法使用代码 element.style.position = 'absolute' 改变定位方式。在改变定位方式后, 元素左上角的坐标仍会保持原来的位置,如果元素未设置初始的 widthheight 属性,则调用该方法后, 元素的宽度和高度会改变为系统预设值。

clone
不推荐

clone(source, target[, options]) -> [Number, Number]

source 中复制参数 options 指定的位置和/或尺寸的相关信息到 target

cumulativeOffset
不推荐

cumulativeOffset(element) -> [Number, Number]

返回 element 相对于页面左上角的坐标。

offsetParent
不推荐

offsetParent(element) -> HTMLElement

返回 element 的容器块(Containing Block)(译注:距离元素最近的 CSS position 属性为 relativeabsolute 的先代节点)节点, 如果不存在这样一个节点,则返回 body 元素。

overlap
不推荐

overlap(mode, element) -> Number

返回一个界于 01 之间的数值,用于表示先前使用 Position.within 方法指定的点基于 element 左上角的坐标值与 element 宽高的比例。mode 可以设置为 verticalhorizontal

page
不推荐

page(element) -> [Number, Number]

返回 element 相对于浏览器可视区域左上角的坐标值。 (译注:坐标原点以浏览器当前可见的部分为基准,意即当滚动条滚动后, 坐标原点也随之改变,坐标原点在当前窗口中永远可见。)

positionedOffset
不推荐

positionedOffset(element) -> [Number, Number]

element 的容器块(Containing Block)节点(译注:距离元素最近的 CSS position 属性为 relativeabsolute 的先代节点)为坐标原点,返回 element 的坐标偏移值(元素的容器块节点可通过 Position.offsetParent(element) 方法获取)。

prepare
不推荐

prepare()

计算文档的滚动偏移值,为使用 Position.withinIncludingScrolloffsets 方法作好准备。

realOffset
不推荐

realOffset(element) -> [Number, Number]

在内含滚动条的容器中计算元素的累积滚动偏移值。

relativize
不推荐

relativize(element)

转换元素的定位方式为相对定位,并且不改变元素在页面中的位置。
译注:该方法使用代码 element.style.position = 'relative' 改变定位方式。在改变定位方式后, 元素左上角的坐标仍会保持原来的位置,如果元素未设置初始的 widthheight 属性,则调用该方法后, 元素的宽度和高度会改变为系统预设值。

within
不推荐

within(element, x, y) -> Boolean

判断点 x, y(以页面左上角为坐标原点)是否在 element 的边界范围内。 在使用 Position.overlap 方法前必须立即调用该方法。

withinIncludingScrolloffsets
不推荐

withinIncludingScrolloffsets(element, x, y) -> Boolean

判断点 x, y(以页面左上角为坐标原点)是否在 element 的边界范围内。 当 element 是一个可滚动容器的子节点时,请使用该方法代替 Position.within。 在使用时,应按照 Position.prepare --> withinIncludingScrolloffsets --> Position.overlap 的顺序调用这些方法。