We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
根据滚动容器元素的可视区域来渲染长列表数据中某一部分数据的技术。
即: 仅渲染可视区域渲染的列表。
window
scrollHeight
虚拟列表是对长列表的一种优化方案。
长列表:
非完整的长列表渲染一般有两种方式
原理介绍
实现虚拟列表就是在处理用户滚动时,要改变列表在可视区域的渲染部分:
https://note.youdao.com/yws/public/resource/8d791dfc6f9c6a22e8e6e722cf68f002/xmlnote/8809167AEAD242EA8C1A1C809C31DC92/36325
从上可以看出, startOffest和endOffset会撑开容器元素的内容高度,让其可持续的滚动;此外,还能保持滚动条处于一个正确的位置。
startOffest
endOffset
根据数据的总条数(total)和每条数据的高度(itemHeight)进行计算
topOffset
offsetTop
bottomOffset
每次滚动的时候
scrollTop
https://note.youdao.com/yws/public/resource/8d791dfc6f9c6a22e8e6e722cf68f002/xmlnote/237BA06A0DD94538A1A8F0A293E59305/36393
https://note.youdao.com/yws/public/resource/8d791dfc6f9c6a22e8e6e722cf68f002/xmlnote/4F260F6B398B46B8A80119F2A5878442/36395
ref
The text was updated successfully, but these errors were encountered:
No branches or pull requests
手动实现虚拟滚动列表
什么是虚拟滚动列表?
根据滚动容器元素的可视区域来渲染长列表数据中某一部分数据的技术。
即: 仅渲染可视区域渲染的列表。
window
对象,然而,我们可以通过布局的方式,在某个页面中任意指定一个或多个滚动容器元素。scrollHeight
属性获取,用户可以通过滚动来改变列表在可视区域的显示部分。为什么用它?
虚拟列表是对长列表的一种优化方案。
长列表:
非完整的长列表渲染一般有两种方式
如何实现?
原理介绍
实现虚拟列表就是在处理用户滚动时,要改变列表在可视区域的渲染部分:
https://note.youdao.com/yws/public/resource/8d791dfc6f9c6a22e8e6e722cf68f002/xmlnote/8809167AEAD242EA8C1A1C809C31DC92/36325
从上可以看出,
startOffest
和endOffset
会撑开容器元素的内容高度,让其可持续的滚动;此外,还能保持滚动条处于一个正确的位置。原理
根据数据的总条数(total)和每条数据的高度(itemHeight)进行计算
topOffset
=offsetTop
,元素底部离容器的距离:bottomOffset
=offsetTop
+ 元素的高度,元素的index,每次滚动的时候
scrollTop
,即此次滚动的卷曲值,从缓存的元素信息中查找到第一个bottomOffset
值大于scrollTop
的元素,并以此元素的index为开始,index + 可视数据数量为结束,从总的数据中截取topOffset
作为上半部门的padding值,这样才会有滚动效果。https://note.youdao.com/yws/public/resource/8d791dfc6f9c6a22e8e6e722cf68f002/xmlnote/237BA06A0DD94538A1A8F0A293E59305/36393
https://note.youdao.com/yws/public/resource/8d791dfc6f9c6a22e8e6e722cf68f002/xmlnote/4F260F6B398B46B8A80119F2A5878442/36395
The text was updated successfully, but these errors were encountered: