From 58d06ee69f36af360b67b1f8d04e6718177de4da Mon Sep 17 00:00:00 2001 From: Ash Monty Date: Sat, 24 Sep 2022 23:10:11 +0200 Subject: [PATCH] feat: make header transparent if near top of page --- public/assets/css/partials/header.css | 4 ++++ public/assets/js/header-handler.js | 14 +++++++++++++- views/partials/header.handlebars | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/public/assets/css/partials/header.css b/public/assets/css/partials/header.css index e5d497e..2b81b7c 100644 --- a/public/assets/css/partials/header.css +++ b/public/assets/css/partials/header.css @@ -17,6 +17,10 @@ header::before { width: 120vw; height: calc(100% + 35px + 35px); background: rgba(27, 31, 59, 0.98); + transition: background 180ms; +} +header.transparent::before { + background: rgba(27, 31, 59, 0); } header.dropdown-active { box-shadow: 0 0 0 600vw rgba(27, 31, 59, 0.8); diff --git a/public/assets/js/header-handler.js b/public/assets/js/header-handler.js index b68a535..d3080d1 100644 --- a/public/assets/js/header-handler.js +++ b/public/assets/js/header-handler.js @@ -33,9 +33,21 @@ function navbarDropdownHandler(buttonID) { // dim the rest of the page header.classList.add('dropdown-active'); - } +// make the header background trnasparent if near the top of the page +function makeHeaderBackgroundTransparent() { + if(window.pageYOffset < 100) { + header.classList.add('transparent'); + } else { + header.classList.remove('transparent'); + } +} +makeHeaderBackgroundTransparent(); +window.addEventListener('scroll', () => { + makeHeaderBackgroundTransparent(); +}); + const navbarDropdownBtns = document.querySelectorAll('header .dropdown-button-wrapper button.dropdown-button'); navbarDropdownBtns.forEach((btn) => { [ 'click', 'mouseover' ].forEach((event) => { diff --git a/views/partials/header.handlebars b/views/partials/header.handlebars index 8d00fff..b08c98d 100644 --- a/views/partials/header.handlebars +++ b/views/partials/header.handlebars @@ -1,6 +1,6 @@ -
+