@@ -6,7 +6,12 @@ const populateSearch = data =>{
66 let li = document . createElement ( 'li' )
77
88 let a = document . createElement ( 'a' )
9- a . href = '#' + i + '_details'
9+ // a.href = '#'+ i + '_details'
10+ // a.onclick = scrollTo('#'+ i + '_details', )
11+ a . addEventListener ( 'click' , ( ) => {
12+ let elem = document . getElementById ( i + '_details' ) . offsetTop - 52
13+ scrollTo ( document . documentElement , elem , 500 )
14+ } )
1015
1116 let type = document . createElement ( 'span' )
1217 let searchText = document . createElement ( 'span' )
@@ -33,10 +38,10 @@ const populateDetails = data =>{
3338
3439 let contentDiv = document . createElement ( 'div' ) ;
3540 contentDiv . className = 'contentDiv'
41+ contentDiv . id = i + '_details'
3642
3743 let heading = document . createElement ( 'h3' )
3844 heading . innerText = '## ' + elem . name
39- heading . id = i + '_details' ;
4045
4146 let description = document . createElement ( 'p' )
4247 description . innerHTML = elem . description
@@ -56,6 +61,19 @@ const populateDetails = data =>{
5661
5762}
5863
64+
65+ const scrollTo = ( element , to , duration ) => {
66+ if ( duration <= 0 ) return ;
67+ const difference = to - element . scrollTop ;
68+ const perTick = difference / duration * 10 ;
69+
70+ setTimeout ( ( ) => {
71+ element . scrollTop = element . scrollTop + perTick ;
72+ if ( element . scrollTop === to ) return ;
73+ scrollTo ( element , to , duration - 10 ) ;
74+ } , 10 ) ;
75+ }
76+
5977document . onreadystatechange = ( ) => {
6078 // document ready
6179 if ( document . readyState === 'complete' ) {
0 commit comments