@@ -42,6 +42,16 @@ document.addEventListener('DOMContentLoaded', function () {
4242 var tab = e . target
4343 var lang = tab . dataset . lang
4444 var title = tab . dataset . title
45+
46+ var toolbarOffset = 0
47+ var toolbar = document . querySelector ( '.toolbar' )
48+ if ( toolbar . offsetHeight ) {
49+ toolbarOffset = toolbar . offsetHeight
50+ }
51+ var offset = document . querySelector ( '.navbar' ) . offsetHeight + toolbarOffset + 20
52+ var topOfWindowPosition = window . scrollY + offset
53+ var topOfTabPosition = tab . getBoundingClientRect ( ) . top + window . scrollY
54+
4555 // Switch Tabs
4656 var targetTabs = document . querySelectorAll ( '.tabbed-target[data-title="' + title + '"]' )
4757 targetTabs . forEach ( function ( target ) {
@@ -63,22 +73,12 @@ document.addEventListener('DOMContentLoaded', function () {
6373 } )
6474 } )
6575
66- var toolbarOffset = 0
67- var toolbar = document . querySelector ( '.toolbar' )
68- if ( toolbar . offsetHeight ) {
69- toolbarOffset = toolbar . offsetHeight
70- }
71- var offset = document . querySelector ( '.navbar' ) . offsetHeight + toolbarOffset + 20
72-
73- var vh = Math . max ( document . documentElement . clientHeight || 0 , window . innerHeight || 0 )
74- var bodyRect = document . body . getBoundingClientRect ( ) . top
75- var elementRect = tab . getBoundingClientRect ( ) . top
76- var elementPosition = elementRect - bodyRect
77- var offsetPosition = elementPosition - offset - vh / 5
76+ var newTopOfTabPosition = tab . getBoundingClientRect ( ) . top + window . scrollY
77+ var shift = topOfTabPosition - newTopOfTabPosition
7878
7979 window . scrollTo ( {
80- top : offsetPosition , // center clicked tab to a fifth of viewport height
81- behavior : 'smooth ' ,
80+ top : topOfWindowPosition - shift - offset , // center clicked tab to a fifth of viewport height
81+ behavior : 'instant ' ,
8282 } )
8383
8484 if ( sessionStorageAvailable ) {
0 commit comments