xiaocheng555 / el-table-virtual-scroll

基于Element-UI的Table 组件开发的虚拟滚动组件,支持动态高度,解决数据量大时滚动卡顿的问题。
224 stars 41 forks source link

scrollTo事件不精确的问题 #77

Closed cug-zgj closed 5 months ago

cug-zgj commented 5 months ago

我看到源码里写这个方法的滚动不精确,原因是:滚动到第n行时,如果周围的表格行计算出真实高度后会更新高度,导致内容坍塌或撑起。但我实际使用中,表高度不会变化,有的时候仍然会有部分偏差,这个有什么解决方案么

cug-zgj commented 5 months ago

补充下,表格第一次scrollTo的时候,刚好滚动到index+1元素的位置,导致index元素的位置刚好被遮住,但是滚动几下后就没问题了,也不是所有元素都滚动不到准确的位置,就只有那么一个元素刚好到index+1的位置

xiaocheng555 commented 5 months ago

我看到源码里写这个方法的滚动不精确,原因是:滚动到第n行时,如果周围的表格行计算出真实高度后会更新高度,导致内容坍塌或撑起。但我实际使用中,表高度不会变化,有的时候仍然会有部分偏差,这个有什么解决方案么

如果表格每行高度是固定的话,itemSize 要设置成行高的高度;如果表格每行是动态高度的话,滚动到index行的时候,是根据预设高度itemSize去计算滚动位置的,滚动完后,渲染的表格行高度动态变化,就有可能导致滚动位置不准确。临时解决: xxx.scrollTo(3); setTimeout(() => xxx.scrollTo(3) , 200),加个定时器多执行一次确保滚动位置正确。

这个问题我后面看看怎么优化

cug-zgj commented 5 months ago

好的,我没设置itemSize,设置完没问题了,谢谢