🎉 First commit!

This commit is contained in:
Florian Sylvain
2022-01-25 19:50:57 +01:00
committed by GitHub
parent 96fe3550db
commit 72e02a412c
6 changed files with 328 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
const mainTitle = document.querySelector('.main-title')
const navBarElems = document.querySelector('body > header > nav')
const mainContent = document.querySelectorAll('#content')
function fadeIn() {
const elementsToFade = document.querySelectorAll(".to-fade")
if (elementsToFade !== null) {
elementsToFade.forEach(elem => {
const distInView = (elem.getBoundingClientRect().bottom - (elem.offsetHeight) / 2) - window.innerHeight
if (distInView < 0) {
elem.classList.add("fade-in")
} else {
elem.classList.remove("fade-in")
}
})
}
}
function scrollHandler() {
fadeIn()
const y = window.scrollY
const titlePos = mainTitle.getBoundingClientRect()
if (titlePos.bottom > 0) {
const distanceToTop = window.pageYOffset + titlePos.top
const elementHeight = mainTitle.offsetHeight
const opacity = 1 - ((y - distanceToTop) / elementHeight) * 2
if (opacity > 0) {
mainTitle.style.letterSpacing = (y * 0.005 <= 0.1 ? 0.1 : y * 0.005) * 2 + 'em'
mainTitle.style.opacity = opacity
}
}
}
scrollHandler()
window.addEventListener('scroll', scrollHandler)
function switchNavBar() {
const header = document.querySelector('.hamburger').parentNode.classList
if (header.contains('slide-in') || header.contains('to-cross')) {
header.remove('slide-in')
header.remove('to-cross')
navBarElems.classList.remove('slide-elements')
} else {
header.add('slide-in')
header.add('to-cross')
navBarElems.classList.add('slide-elements')
}
}
document.querySelectorAll('nav a').forEach(a => {
a.onclick = switchNavBar
})