mirror of
https://github.com/hazemKrimi/personal-website.git
synced 2026-05-01 18:00:26 +00:00
No fetching of icons
This commit is contained in:
+15
-9
@@ -41,14 +41,18 @@ function loadTheme() {
|
||||
root.style.setProperty('--text', theme === 'light' ? 'black' : 'white');
|
||||
root.style.setProperty('--color', theme === 'light' ? 'black' : 'white');
|
||||
|
||||
fetch(`/icons/${theme === 'light' ? 'sun' : 'moon'}.svg`)
|
||||
.then((response) => response.text())
|
||||
.then((svg) => {
|
||||
themeTogglers.forEach(themeToggler => {
|
||||
themeToggler.innerHTML = svg;
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
document.querySelector(
|
||||
theme === 'light' ? 'header .moon' : 'header .sun'
|
||||
).style.display = 'none';
|
||||
document.querySelector(
|
||||
theme === 'light' ? 'nav .moon' : 'nav .sun'
|
||||
).style.display = 'none';
|
||||
document.querySelector(
|
||||
theme === 'light' ? 'header .sun' : 'header .moon'
|
||||
).style.display = 'block';
|
||||
document.querySelector(
|
||||
theme === 'light' ? 'nav .sun' : 'nav .moon'
|
||||
).style.display = 'block';
|
||||
}
|
||||
|
||||
function updateTheme() {
|
||||
@@ -64,4 +68,6 @@ let theme = initTheme();
|
||||
|
||||
document.addEventListener('DOMContentLoaded', loadTheme);
|
||||
|
||||
themeTogglers.forEach(themerToggler => themerToggler.addEventListener('click', updateTheme));
|
||||
themeTogglers.forEach((themerToggler) =>
|
||||
themerToggler.addEventListener('click', updateTheme)
|
||||
);
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
function loadBurger() {
|
||||
fetch(`/icons/${burgerOpen ? 'close' : 'burger'}.svg`)
|
||||
.then((response) => response.text())
|
||||
.then((svg) => {
|
||||
burgerPlaceholder.innerHTML = svg;
|
||||
mobileNavigation.style.display = burgerOpen ? 'flex' : 'none';
|
||||
mobileNavigation.style.top = burgerOpen
|
||||
? `calc(${header.getBoundingClientRect().y}px + ${
|
||||
header.getBoundingClientRect().height
|
||||
}px + 0.625rem)`
|
||||
: 'initial';
|
||||
mobileNavigation.style.left = burgerOpen
|
||||
? `${header.getBoundingClientRect().x}px`
|
||||
: 'initial';
|
||||
})
|
||||
.catch(() => {});
|
||||
navToggler.querySelector(
|
||||
burgerOpen ? '#burger' : '#close'
|
||||
).style.display = 'none';
|
||||
navToggler.querySelector(
|
||||
burgerOpen ? '#close' : '#burger'
|
||||
).style.display = 'block';
|
||||
mobileNavigation.style.display = burgerOpen ? 'flex' : 'none';
|
||||
mobileNavigation.style.top = burgerOpen
|
||||
? `calc(${header.getBoundingClientRect().y}px + ${
|
||||
header.getBoundingClientRect().height
|
||||
}px + 0.625rem)`
|
||||
: 'initial';
|
||||
mobileNavigation.style.left = burgerOpen
|
||||
? `${header.getBoundingClientRect().x}px`
|
||||
: 'initial';
|
||||
}
|
||||
|
||||
function updateBurger() {
|
||||
@@ -37,13 +37,14 @@ function resetBurgerWhenClickedOutside(event) {
|
||||
mobileNavigation.style.display === 'flex' &&
|
||||
event.target !== header &&
|
||||
event.target !== mobileNavigation &&
|
||||
!mobileNavigation.contains(event.target)
|
||||
!mobileNavigation.contains(event.target) &&
|
||||
!navToggler.contains(event.target)
|
||||
) {
|
||||
resetBurger();
|
||||
}
|
||||
}
|
||||
|
||||
const burgerPlaceholder = document.querySelector('#burger');
|
||||
const navToggler = document.querySelector('#nav-toggler');
|
||||
const header = document.querySelector('header');
|
||||
const mobileNavigation = document.querySelector('nav');
|
||||
let burgerOpen = false;
|
||||
@@ -54,4 +55,4 @@ document.addEventListener('DOMContentLoaded', loadBurger);
|
||||
|
||||
document.addEventListener('click', resetBurgerWhenClickedOutside);
|
||||
|
||||
burgerPlaceholder.addEventListener('click', updateBurger);
|
||||
navToggler.addEventListener('click', updateBurger);
|
||||
|
||||
Reference in New Issue
Block a user