@@ -15,6 +15,10 @@ export default class tutorial
1515 this . discover ( ) ;
1616
1717 this . setupVizzu ( snippetRegistry ) ;
18+
19+ window . onresize = ( ) => {
20+ this . setVizzuPosition ( this . activeSnippet , false ) ;
21+ }
1822 }
1923
2024 scrolled ( event )
@@ -46,7 +50,10 @@ export default class tutorial
4650 let element = document . getElementById ( elementId ) ;
4751
4852 if ( element === null ) this . setInitialSnippet ( defaultId ) ;
49- else element . focus ( { preventScroll : true } ) ;
53+ else {
54+ this . activeSnippet = element ;
55+ element . focus ( { preventScroll : true } ) ;
56+ }
5057 }
5158
5259 setupVizzu ( snippetRegistry )
@@ -95,6 +102,16 @@ export default class tutorial
95102
96103 activateSnippet ( snippet )
97104 {
105+ this . activeSnippet = snippet ;
106+ this . setVizzuPosition ( snippet , true ) ;
107+ const id = DomHelper . parseId ( snippet ) . id ;
108+ this . vizzuView . step ( id ) ;
109+ }
110+
111+ setVizzuPosition ( snippet , transition )
112+ {
113+ if ( this . activeSnippet == undefined ) return ;
114+
98115 let canvas = document . getElementById ( 'vizzu-canvas' ) ;
99116
100117 let targetTop = snippet . offsetTop
@@ -103,11 +120,10 @@ export default class tutorial
103120
104121 let view = document . getElementById ( 'vizzu-view' ) ;
105122
106- view . style . top = targetTop + 'px' ;
107- view . style . transition = 'top .2s' ;
108-
109- const id = DomHelper . parseId ( snippet ) . id ;
110- this . vizzuView . step ( id ) ;
123+ let left = parseInt ( window . getComputedStyle ( view ) . left , 10 ) ;
124+ view . style . top = ( left > 0 ? targetTop : 0 ) + 'px' ;
125+
126+ view . style . transition = `top ${ transition ? .2 : 0 } s` ;
111127 }
112128
113129 firstVisibleSubtitle ( )
0 commit comments