1- import { Ref , ref , reactive , computed } from 'vue'
1+ import { Ref , ref , reactive , computed , nextTick } from 'vue'
22import { Step , positionConf } from '../src/steps-guide-types'
33
44export function useStepsGuideNav ( steps : Step [ ] , stepIndex :Ref < number > ) {
@@ -8,7 +8,7 @@ export function useStepsGuideNav(steps: Step[], stepIndex:Ref<number>) {
88 _step . position = _step . position || 'top'
99 return _step
1010 } )
11- const guideClassList = [ 'd -steps-guide' ]
11+ const guideClassList = [ 'devui -steps-guide' ]
1212 const stepsRef = ref ( null )
1313 const guidePosition = reactive ( {
1414 left : '' ,
@@ -19,6 +19,7 @@ export function useStepsGuideNav(steps: Step[], stepIndex:Ref<number>) {
1919 const baseTop = window . pageYOffset - document . documentElement . clientTop
2020 const baseLeft = window . pageXOffset - document . documentElement . clientLeft
2121 const currentStepPosition :positionConf = currentStep . value . position
22+ const stepGuideElement = stepsRef . value
2223 let _left , _top
2324 // 自定义 position位置
2425 if ( typeof currentStepPosition !== 'string' ) {
@@ -28,7 +29,6 @@ export function useStepsGuideNav(steps: Step[], stepIndex:Ref<number>) {
2829 _top = top
2930 } else {
3031 guideClassList . splice ( 1 , 1 , currentStepPosition )
31- const stepGuideElement = stepsRef . value
3232 const triggerSelector = currentStep . value . target || currentStep . value . trigger
3333 const triggerElement = document . querySelector ( triggerSelector )
3434 const targetRect = triggerElement . getBoundingClientRect ( )
@@ -63,6 +63,10 @@ export function useStepsGuideNav(steps: Step[], stepIndex:Ref<number>) {
6363 }
6464 guidePosition . left = _left + 'px'
6565 guidePosition . top = _top + 'px'
66+ nextTick ( ( ) => {
67+ // 位置更新后滚动视图
68+ stepGuideElement . scrollIntoView ( { behavior : "smooth" , block : "nearest" , inline : "nearest" } )
69+ } )
6670 }
6771 return {
6872 currentStep,
0 commit comments