aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/main/resources/dokka/scripts
diff options
context:
space:
mode:
authorMarcin Aman <marcin.aman@gmail.com>2020-11-10 16:54:57 +0100
committerGitHub <noreply@github.com>2020-11-10 16:54:57 +0100
commit07e43676665bdc009e135b767e6d43c536b413fa (patch)
treed389a7257ef4a508a7672abca16c626965c1e04d /plugins/base/src/main/resources/dokka/scripts
parent470ccfca37041ff0f1924318fae8820f674d26f4 (diff)
downloaddokka-07e43676665bdc009e135b767e6d43c536b413fa.tar.gz
dokka-07e43676665bdc009e135b767e6d43c536b413fa.tar.bz2
dokka-07e43676665bdc009e135b767e6d43c536b413fa.zip
New breadcrumbs (#1590)
Add top navbar
Diffstat (limited to 'plugins/base/src/main/resources/dokka/scripts')
-rw-r--r--plugins/base/src/main/resources/dokka/scripts/platform-content-handler.js28
1 files changed, 27 insertions, 1 deletions
diff --git a/plugins/base/src/main/resources/dokka/scripts/platform-content-handler.js b/plugins/base/src/main/resources/dokka/scripts/platform-content-handler.js
index 26dd9424..07a6642b 100644
--- a/plugins/base/src/main/resources/dokka/scripts/platform-content-handler.js
+++ b/plugins/base/src/main/resources/dokka/scripts/platform-content-handler.js
@@ -4,6 +4,8 @@ filteringContext = {
activeFilters: []
}
let highlightedAnchor;
+let topNavbarOffset;
+var scrollNavbarBreakPoint = 300
window.addEventListener('load', () => {
document.querySelectorAll("div[data-platform-hinted]")
@@ -18,6 +20,13 @@ window.addEventListener('load', () => {
initTabs()
handleAnchor()
initHidingLeftNavigation()
+
+ document.getElementById('main').addEventListener("scroll", (e) => {
+ const element = document.getElementsByClassName("navigation-wrapper")[0]
+ const additionalOffset = element.classList.contains("sticky-navigation") ? 14 : 0
+ element.classList.toggle("sticky-navigation", e.target.scrollTop + additionalOffset > scrollNavbarBreakPoint)
+ })
+ topNavbarOffset = document.getElementById('navigation-wrapper')
})
const initHidingLeftNavigation = () => {
@@ -64,7 +73,24 @@ function handleAnchor() {
content.classList.add('anchor-highlight')
highlightedAnchor = content
}
- element.scrollIntoView({behavior: "smooth"})
+
+ const scrollToElement = () => document.getElementById('main').scrollTo({ top: element.offsetTop - topNavbarOffset.offsetHeight, behavior: "smooth"})
+
+ const waitAndScroll = () => {
+ setTimeout(() => {
+ if(topNavbarOffset){
+ scrollToElement()
+ } else {
+ waitForScroll()
+ }
+ }, 100)
+ }
+
+ if(topNavbarOffset){
+ scrollToElement()
+ } else {
+ waitAndScroll()
+ }
}
}
}