diff --git a/examples/sites/src/views/components/components.vue b/examples/sites/src/views/components/components.vue index 73079a71ff..2533585c96 100644 --- a/examples/sites/src/views/components/components.vue +++ b/examples/sites/src/views/components/components.vue @@ -459,7 +459,7 @@ export default defineComponent({ }) } } - }, 600) + }, 0) } // 在singleDemo情况时,才需要滚动示例区域到顶 @@ -565,7 +565,12 @@ export default defineComponent({ } // F5刷新加载时,跳到当前示例 - scrollByHash(hash) + // 应当在所有demo渲染完毕后在滚动,否则滚动完位置后,demo渲染会使滚动位置错位 + setTimeout(() => { + nextTick(() => { + scrollByHash(hash) + }) + }, 0) }) .finally(() => { // 获取组件贡献者 @@ -652,12 +657,14 @@ export default defineComponent({ router.push(data.link) } else if (apiModeState.demoMode === 'default' && data.link.startsWith('#')) { + e.preventDefault() // 多示例模式,自动会切到相应的位置。只需要记录singleDemo就好了 const hash = data.link.slice(1) state.currDemoId = hash state.singleDemo = state.currJson.demos.find((d) => d.demoId === hash) - e.preventDefault() + router.push(data.link) + scrollByHash(hash) } } }