Add sticky header feature
This commit is contained in:
8
.idea/.gitignore
generated
vendored
Normal file
8
.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# Editor-based HTTP Client requests
|
||||||
|
/httpRequests/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
||||||
36
sticky-header/index.less
Normal file
36
sticky-header/index.less
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
@media(min-width: 978px) {
|
||||||
|
.desktop-menu__scroll{
|
||||||
|
#container{
|
||||||
|
padding-top: 26.4rem; // Write here your header element height value
|
||||||
|
}
|
||||||
|
|
||||||
|
header{
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
animation: stickyAnimation 0.5s;
|
||||||
|
.responsive-padding(); // Function with padding, added in the repository as well
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
animation: stickyAnimation 0.5s;
|
||||||
|
max-height: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bars_top.bars, .breadcrumbs, .idm-help, .top-bar{
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes stickyAnimation {
|
||||||
|
0% {
|
||||||
|
transform: translate(0, -100%);
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: translate(0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
20
sticky-header/steacky-header.js
Normal file
20
sticky-header/steacky-header.js
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
const HEADER_POINT = 70;
|
||||||
|
let lastScrollY = window.scrollY;
|
||||||
|
|
||||||
|
window.addEventListener("scroll", () => {
|
||||||
|
if (app_shop.vars.view === 1 || app_shop.vars.view === 2) return;
|
||||||
|
|
||||||
|
const container = document.querySelector("#container");
|
||||||
|
if (container.classList.contains("projector_page")) return;
|
||||||
|
|
||||||
|
const bodyEl = document.querySelector("body");
|
||||||
|
const currentScroll = window.scrollY;
|
||||||
|
|
||||||
|
if (currentScroll < lastScrollY && currentScroll > HEADER_POINT) {
|
||||||
|
bodyEl.classList.add("desktop-menu__scroll");
|
||||||
|
} else {
|
||||||
|
bodyEl.classList.remove("desktop-menu__scroll");
|
||||||
|
}
|
||||||
|
|
||||||
|
lastScrollY = currentScroll;
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user