diff --git a/packages/components/scrollbar/src/scrollbar.vue b/packages/components/scrollbar/src/scrollbar.vue index 1a9b261d71..18dbc2b500 100644 --- a/packages/components/scrollbar/src/scrollbar.vue +++ b/packages/components/scrollbar/src/scrollbar.vue @@ -28,6 +28,7 @@ import { computed, nextTick, + onActivated, onMounted, onUpdated, provide, @@ -57,6 +58,8 @@ const ns = useNamespace('scrollbar') let stopResizeObserver: (() => void) | undefined = undefined let stopResizeListener: (() => void) | undefined = undefined +let wrapScrollTop = 0 +let wrapScrollLeft = 0 const scrollbarRef = ref() const wrapRef = ref() @@ -85,6 +88,8 @@ const resizeKls = computed(() => { const handleScroll = () => { if (wrapRef.value) { barRef.value?.handleScroll(wrapRef.value) + wrapScrollTop = wrapRef.value.scrollTop + wrapScrollLeft = wrapRef.value.scrollLeft emit('scroll', { scrollTop: wrapRef.value.scrollTop, @@ -160,6 +165,11 @@ provide( }) ) +onActivated(() => { + wrapRef.value!.scrollTop = wrapScrollTop + wrapRef.value!.scrollLeft = wrapScrollLeft +}) + onMounted(() => { if (!props.native) nextTick(() => {