diff --git a/packages/vue-virtual-scroller/src/components/RecycleScroller.vue b/packages/vue-virtual-scroller/src/components/RecycleScroller.vue index 40680cb6..7eab6f85 100644 --- a/packages/vue-virtual-scroller/src/components/RecycleScroller.vue +++ b/packages/vue-virtual-scroller/src/components/RecycleScroller.vue @@ -636,7 +636,9 @@ export default { const boundsSize = isVertical ? bounds.height : bounds.width let start = -(isVertical ? bounds.top : bounds.left) let size = isVertical ? window.innerHeight : window.innerWidth - if (start < 0) { + let originStart = isVertical ? bounds.top : bounds.left; + // Fix start value when the el is scrolling from under the viewport to the middle of the viewport + if (start < 0 && !(originStart > 0 && originStart < size)) { size += start start = 0 }