behavior: virtual-list
behavior: virtual-list
此帮助程序行为实现了“滑动窗口”可滚动列表的逻辑。
它用于向用户显示列表中可能存在的大量记录。此行为在滑动窗口中使用始终固定数量的 DOM 元素。
Elements
默认情况下,该行为不会应用于任何元素 - 您应该在 CSS 中显式分配它:
div.list {
behavior:virtual-list;
overflow-y:scroll;
}
Attributes
不适用。
但该行为使用 vertical-align: top | bottom
CSS 属性来确定初始呈现。如果是 vertical-align: bottom
,则列表最初会滚动到末尾。
Events
结合标准事件集(鼠标、键盘、焦点)行为:virtual-list 生成:
"contentrequired"
- 当行为因滚动而需要更多元素时生成。
event.data
包含以下结构
{
where:int // 0 - to replace current content, -1 - to add before first element, 1 - to add after last element
start:int, // index of first record
length:int, // that number of records required to be added or replaced by script.
}
通过处理该事件,脚本将填充请求的元素数,并在数据字段中返回以下对象:
{
morebefore: int, // estimated number of items before the buffer start
moreafter: int // estimated number of records after the buffer end
}
此信息用于正确设置滚动条。
Value
不适用
Methods
navigateTo()
element.vlist.navigateTo(to: int | string)
滚动到给定的记录,其中 to
为:
integer - 绝对记录数;
“开始” - 第一张唱片;
“结束” - 最后一条记录;
“pagenext” - 下一页;
“pageprior” - 上一页;
“itemnext” - 下一条记录;
“itemprior” - 以前的记录;
advanceTo()
element.vlist.advanceTo(recNo: int) : Element`
滚动到给定的记录编号。默认情况下,它执行动画滚动。
返回表示记录的 DOM 元素。
scrollBy()
element.vlist.scrollBy(pixels) : boolean`
按给定的 CSS 像素数滚动。默认情况下,它执行动画滚动。
如果发生 actuall 滚动,则返回 true。
Properties
firstVisibleItem
element.vlist.firstVisibleItem: Element
只读,对缓冲区中第一个可见项的引用。
lastVisibleItem
element.vlist.lastVisibleItem: Element
只读,对缓冲区中最后一个可见项的引用。
firstVisibleItemIndex
element.vlist.firstVisibleItemIndex: Element
只读,记录集中第一个可见项的索引。
lastVisibleItemIndex
element.vlist.lastVisibleItemIndex: int
只读,记录集中最后一个可见项的索引。
firstBufferIndex
element.vlist.firstBufferIndex: int
只读,即在滑动缓冲区中的第一个元素之前预期的许多记录。
lastBufferIndex
element.vlist.lastBufferIndex: int
只读,firstBufferIndex - lastBufferIndex + 1 是滑动窗口的当前大小。
itemsBefore
element.vlist.itemsBefore: int
读写,在缓冲区(滑动窗口)之前报告的项目数。
提示当新记录出现在滑动窗口之前/之后时,为 itemsBefore/After 分配新值。
itemsAfter
element.vlist.itemsAfter: int`
读写,缓冲区(滑动窗口)后报告的项目数。
itemsTotal
element.vlist.itemsTotal: int
只读,总共有多少个项目 (itemsBefore + element.children.length + itemsAfter) 。
slidingWindowSize
element.vlist.slidingWindowSize: int`
读-写,滑动窗口中有多少个项目(DOM 元素)。 提示
理想情况下,它应该是预期可见项(代表每条记录的 DOM 元素)数量的两倍