support for sticky navbar
This commit is contained in:
@@ -41,7 +41,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-3">
|
||||
<div class="sticky-sidebar">
|
||||
<div id="stickySideBar" class="sticky-sidebar">
|
||||
{{ if .Params.toc | default true}}
|
||||
<aside class="toc">
|
||||
<h5>
|
||||
@@ -125,6 +125,17 @@
|
||||
document.body.scrollTop = 0;
|
||||
document.documentElement.scrollTop = 0;
|
||||
}
|
||||
|
||||
// To set height of sticky sidebar dynamically
|
||||
let stickySideBarElem = document.getElementById("stickySideBar");
|
||||
let stickyNavBar = {{ .Site.Params.navbar.stickyNavBar.enable | default false }};
|
||||
if(stickyNavBar) {
|
||||
let headerElem = document.getElementById("profileHeader");
|
||||
let headerHeight = headerElem.offsetHeight + 15;
|
||||
stickySideBarElem.style.top = headerHeight + "px";
|
||||
} else {
|
||||
stickySideBarElem.style.top = "50px";
|
||||
}
|
||||
</script>
|
||||
|
||||
{{ if or (.Site.Params.singlePages.readTime.enable | default true) (.Params.enableReadingTime) }}
|
||||
|
||||
@@ -18,9 +18,35 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- Show header on scroll up -->
|
||||
{{ if .Site.Params.navbar.stickyNavBar.enable | default false }}
|
||||
{{ $showNavBarOnScrollUp := .Site.Params.navbar.stickyNavBar.showOnScrollUp | default false }}
|
||||
<script>
|
||||
var prevScrollPos = window.pageYOffset;
|
||||
window.addEventListener("scroll", function showHeaderOnScroll() {
|
||||
let profileHeaderElem = document.getElementById("profileHeader");
|
||||
let currentScrollPos = window.pageYOffset;
|
||||
let resetHeaderStyle = false;
|
||||
let showNavBarOnScrollUp = {{ $showNavBarOnScrollUp }};
|
||||
let showNavBar = showNavBarOnScrollUp ? prevScrollPos > currentScrollPos : currentScrollPos > 0;
|
||||
if (showNavBar) {
|
||||
profileHeaderElem.classList.add("showHeaderOnTop");
|
||||
} else {
|
||||
resetHeaderStyle = true;
|
||||
}
|
||||
if(currentScrollPos === 0) {
|
||||
resetHeaderStyle = true;
|
||||
}
|
||||
if(resetHeaderStyle) {
|
||||
profileHeaderElem.classList.remove("showHeaderOnTop");
|
||||
}
|
||||
prevScrollPos = currentScrollPos;
|
||||
});
|
||||
</script>
|
||||
{{ end }}
|
||||
|
||||
<!-- Navbar -->
|
||||
<header>
|
||||
<header id="profileHeader">
|
||||
<nav class="pt-3 navbar navbar-expand-lg {{ if .Site.Params.animate }}animate{{ end }}">
|
||||
<div class="container-fluid mx-xs-2 mx-sm-5 mx-md-5 mx-lg-5">
|
||||
<!-- navbar brand -->
|
||||
|
||||
Reference in New Issue
Block a user