within [不推荐]
within(element, x, y) -> Boolean
判断点 x, y(以页面左上角为坐标原点)是否在 element 的边界范围内。 在使用 Position.overlap 方法前必须立即调用该方法。
已废弃!
该方法使用 Position.cumulativeOffset 来计算 element 距页面左上角的距离,然后根据 element 的高度和宽度标识出元素四个角的偏移值,最后再与 x 和 y 参数指定的坐标相比较,如果 (x, y) 落入 element 的边界内,则返回 true。
样例
var element = $('some_positioned_element');
Position.cumulativeOffset(element);
// -> [100, 100](元素距离页面的左方和顶部都是 100px)
Element.getD...
relativize [不推荐]
relativize(element)
转换元素的定位方式为相对定位,并且不改变元素在页面中的位置。
译注:该方法使用代码 element.style.position = 'relative' 改变定位方式。在改变定位方式后, 元素左上角的坐标仍会保持原来的位置,如果元素未设置初始的 width 和 height 属性,则调用该方法后, 元素的宽度和高度会改变为系统预设值。
已被 Element#relativize 方法取代。
realOffset [不推荐]
realOffset(element) -> [Number, Number]
在内含滚动条的容器中计算元素的累积滚动偏移值。
已被 Element#cumulativeScrollOffset 方法取代。
累加元素及它的所有先代节点的 scrollLeft 和 scrollTop。
该方法常用于在多个滚动容器(例如在一个可滚动的容器中包含一个可滚动的文档)中计算元素的滚动偏移值。
注意:所有返回值都仅有数字,单位为像素。
positionedOffset [不推荐]
positionedOffset(element) -> [Number, Number]
以 element 的容器块(Containing Block)节点(译注:距离元素最近的 CSS position 属性为 relative 或 absolute 的先代节点)为坐标原点,返回 element 的坐标偏移值(元素的容器块节点可通过 Position.offsetParent(element) 方法获取)。
已被 Element#positionedOffset 方法取代。
这个方法其实是累加元素及其所有父元素的 offsetLeft 和 offsetTop,直到其中一个元素的 CSS position 属性不等于 static(译注:static 是 position 的默认值)为止。
注意:所有返回值都仅有数字,单位为像素。
...
page [不推荐]
page(element) -> [Number, Number]
返回 element 相对于浏览器可视区域左上角的坐标值。 (译注:坐标原点以浏览器当前可见的部分为基准,意即当滚动条滚动后, 坐标原点也随之改变,坐标原点在当前窗口中永远可见。)
已被 Element#viewportOffset 取代。
注意:所有返回值都仅有数字,单位为像素。
overlap [不推荐]
overlap(mode, element) -> Number
返回一个界于 0 和 1 之间的数值,用于表示先前使用 Position.within 方法指定的点基于 element 左上角的坐标值与 element 宽高的比例。mode 可以设置为 vertical 或 horizontal。
已废弃!
假设有一个块级别的 element(即元素具有宽和高)以及一个以页面左上角为原点的坐标为 x, y 的点,调用 Position.within 将会指出这个点是否在 element 所占据的区域内。
现在假设有一个与 element 具有相同尺寸的元素,它的右下角(译注:原文为左上角)顶点坐标为 x, y。Position.overlap 指出这两个元素在水平和垂直方向上的重叠部分相对于 element...
offsetParent [不推荐]
offsetParent(element) -> HTMLElement
返回 element 的容器块(Containing Block)(译注:距离元素最近的 CSS position 属性为 relative 或 absolute 的先代节点)节点, 如果不存在这样一个节点,则返回 body 元素。
已被 Element#getOffsetParent 方法取代。
返回的元素是 element 的 CSS containing block。
cumulativeOffset [不推荐]
cumulativeOffset(element) -> [Number, Number]
返回 element 相对于页面左上角的坐标。
已被 Element#cumulativeOffset 方法取代。
累加元素及它的所有先代节点的 offsetLeft 和 offsetTop。
注意:所有返回值都仅有数字,单位为像素。
clone [不推荐]
clone(source, target[, options]) -> [Number, Number]
从 source 中复制参数 options 指定的位置和/或尺寸的相关信息到 target。
已被 Element#clonePosition 方法取代。
注意:该方法根据 CSS containing block 的规则判定元素的位置信息是否相同,调用该方法后,target 和 source 的位置信息按照上述规则严格匹配。
选项
名称
默认值
描述
setLeft
true
克隆 source 的 CSS 属性 left 到 target。
...
absolutize [不推荐]
absolutize(element)
转换元素的定位方式为绝对定位,并且不改变元素在页面中的位置。
译注:该方法使用代码 element.style.position = 'absolute' 改变定位方式。在改变定位方式后, 元素左上角的坐标仍会保持原来的位置,如果元素未设置初始的 width 和 height 属性,则调用该方法后, 元素的宽度和高度会改变为系统预设值。
已被 Element#absolutize 方法取代。
从 Prototype 1.6 开始,Position 对象已经完全被 Element 对象的相关方法所取代。
Position 对象提供了一系列方法用于解决 DOM 元素的位置和布局方面的问题。它主要是给第三方的 UI 库如 script.aculo.us 使用的。
方法
absolutize [不推荐]
absolutize(element)
转换元素的定位方式为绝对定位,并且不改变元素在页面中的位置。
译注:该方法使用代码 element.style.position = 'absolute' 改变定位方式。在改变定位方式后, 元素左上角的坐标仍会保持原来的位置,如果元素未设置初始的 width 和 height 属性,则调用该方法后, 元素的宽度和高度会改变为系统预设值。
clone  ...
这是一个简单实用的工具,用于定期执行一个指定的函数。从本质上来说,它是封装原生 Window 对象的 setInterval/clearInterval 机制。
PeriodicalExecuter 具有一项值得注意的非常有用的特性:它会阻止回调函数的多次并发执行, 并顺延执行的时间间隔(它维护一个内部的运行标志,用于屏蔽回调函数运行时的产生的异常)。如果需要定时与用户进行交互 (如使用一个 prompt 或 confirm),这非常有用,它将会避免在等待响应时产生多个信息框。
当然,当前一个非常好的观点是:应尽量使用一个实际的对象,而不是维护一个全局的定时器句柄。这也算是 PeriodicalExecuter 的一项优势吧。
创建 PeriodicalExecuter 对象
PeriodicalExe...
isFunction [1.6]
isFunction(obj) -> Boolean
如果 obj 是一个 Function 对象,返回 true,否则返回 false。
样例
Object.isFunction($); //-> true
Object.isFunction(123); //-> false
Top [不推荐]
new Insertion.Top(element, html)
将 html 插入到页面中作为 element 的最前面的子节点。
从 Prototype 1.6 开始,Insertion 类已经完全被 Element#insert 取代。
注意,如果插入的 HTML 包含有 <script> 标签,在插入后标签中的脚本会被自动执行 (Insertion.Top 在内部调用 String#evalScripts)。
样例
初始的 HTML
<div id="modern_major_general">
<p>I am the very model of a modern major general.</p>
</div>
JavaScript
new Insertion.Top(
'modern_major_general',
"<p>In short, in all things vegetable, ani...
Bottom [不推荐]
new Insertion.Bottom(element, html)
将 html 插入到页面中作为 element 的最后的子节点。
从 Prototype 1.6 开始,Insertion 类已经完全被 Element#insert 取代。
注意,如果插入的 HTML 包含有 <script> 标签,在插入后标签中的脚本会被自动执行 (Insertion.Bottom 在内部调用 String#evalScripts)。
样例
初始的 HTML
<div id="modern_major_general">
<p>In short, in all things vegetable, animal, and mineral...</p>
</div>
JavaScript
new Insertion.Bottom(
'modern_major_general',
"<p>I am the very mod...
Before [不推荐]
new Insertion.Before(element, html)
将 html 插入到页面中作为 element 的前导兄弟节点。
从 Prototype 1.6 开始,Insertion 类已经完全被 Element#insert 取代。
注意,如果插入的 HTML 包含有 <script> 标签,在插入后标签中的脚本会被自动执行 (Insertion.Before 在内部调用 String#evalScripts)。
样例
初始的 HTML
<div>
<p id="modern_major_general">
I am the very model of a modern major general.
</p>
</div>
JavaScript
new Insertion.Before(
'modern_major_general',
"<p>In short, in all thin...