研究了一下飞书、react-window 等虚拟滚动的实现,都是需要提前知道节点的高度,因为用反证法思考,不知道高度,那还滚动个啥呢?所以,他们的原理都是大同小异的。
我写了 2 个 demo,一个是向下虚拟滚动,一个是向上虚拟滚动。记录在下面。
See the Pen virtual scroll myself2 by zeng (@zengxiaoluan) on CodePen.
See the Pen virtual scroll myself by zeng (@zengxiaoluan) on CodePen.
最近我们做了一个网页版的聊天工具,类似有度,还是很有意思。
further reading
这个文章写的很好,推荐阅读。