fix(components): [scrollbar] restore scroll position in onActivated hook (#11363)

This commit is contained in:
dopamine
2024-07-27 22:21:35 +08:00
committed by GitHub
parent 88e1f2de7e
commit 2fce7b469b

View File

@@ -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<HTMLDivElement>()
const wrapRef = ref<HTMLDivElement>()
@@ -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(() => {