虚拟滚动是什么?

常规滚动网页: 浏览器内容固定,视口响应用户鼠标滚动,上下移动

虚拟滚动网页: 浏览器视口固定,内容响应用户鼠标滚动,上下移动

运动是相对的

运动是相对的

通过滚动事件计算得到正常情况下视口的向下偏移量(Y轴),给内容一个反向的向上偏移,视口保持不变,就可以人为模拟出滚动效果。

1111

浏览器坐标系的定义

浏览器坐标系的定义

虚拟滚动和常规滚动的区别

按需渲染

根据相对偏移量,计算出应该在浏览器视口中被渲染出的元素来渲染。而不是把整个页面结构交给浏览器渲染,减少渲染开销以提升性能。

实际例子

https://stackblitz.com/angular/eargxmoggnjb?file=src%2Fapp%2Fcdk-virtual-scroll-context-example.ts

可以看到,其中的内容虽然非常多,但元素长度一直很短,滚动也没有卡顿

在优化过长单页面时非常有用,结案报告准备用上。