Closed M78xingyuns closed 7 months ago
这是由于还没有发生滚动的时候去获取未渲染的元素的尺寸是不准确的,这里如果需要将目标元素滚动到居中位置暂时可以通过在滚动后元素 size 更新后进行位置修正来实现 const setScrollTo = (index) => { // domHeight 滚动父元素的高度 const fn = () => { const { top, current } = virtListRef.value.getItemPosByIndex(index) const viewHeight = (domHeight - current) / 2 const n = top - viewHeight virtListRef.value.scrollToOffset(n) } fn(); setTimeout(fn, 20); }
感谢的您的回复 我想确认一下,滚动元素后再修,是滚动了两次吗
是的
当我不使用fixed 的时候, 使用getItemPosByIndex 获取到的top 和实际元素的offsetTop不一致 ,这样会导致想让一个元素居中的时候总是偏移一些位置。这个问题是因为设置了最小高度minSize后会有内容大于这个高度导致的。我想让一个元素居中显示该怎么做