diff options
Diffstat (limited to 'docs/assets/js/site.js')
| -rw-r--r-- | docs/assets/js/site.js | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/docs/assets/js/site.js b/docs/assets/js/site.js new file mode 100644 index 0000000..bff06bb --- /dev/null +++ b/docs/assets/js/site.js @@ -0,0 +1,72 @@ +const site = (function(){ + let section + let links = toArray(document.querySelectorAll('.menu a')) + let time = new Date() + let hour = time.getHours() + let quotes = [ + "So, are softsynths as nasty as they say?", + "Ah, a hardware person, I get it.", + "You have to make space to leave space.", + "Those waveforms are more powerful than we realize.", + "And that sub-oscillator? W-O-W!", + "Get in there, sweep the filter and give yourself a pat on the back. In that order.", + "Not a museum. Move along.", + "I've got to get out of this studio and back out there.", + ] + if (hour < 8 || hour > 16) { + document.body.parentNode.classList.add('night') + } else { + document.body.parentNode.classList.add('day') + } + preload('img/pause-inv.png') + setTimeout(() => { + document.body.classList.remove('loading') + navigateHash(window.location.hash) + const email = atob("eGVuYXZlY3RyYTkwOUBnbWFpbC5jb20=") + const twitter = atob("dmVjdHJheGVuYQ==") + document.querySelector("#email_addr").href = 'mailto:' + email + document.querySelector("#email_addr").innerHTML = email + document.querySelector("#twitter_addr").innerHTML = twitter + document.querySelector("#twitter_addr").href = 'https://twitter.com/' + twitter + }, 0) + toArray(document.querySelectorAll('.menu a')).forEach(a => { + a.addEventListener("click", e => { + e.preventDefault() + sounds.play('click') + console.log(e.target) + if (e.target.nodeName.toLowerCase() !== 'a') { + navigateHash(e.target.parentNode.href) + } else { + navigateHash(e.target.href) + } + }) + }) + function navigateHash(url){ + if (is_mobile) { + player.hidePlaylist() + } + let new_section = (url || "").split('#')[1] + if (section) { + document.body.classList.remove(section) + links.forEach(link => link.classList.remove('active')) + } + if (new_section && new_section !== section) { + if (new_section.match('hardware')) { + document.querySelector('#quote').innerHTML = choice(quotes) + } + document.body.classList.add(new_section) + links.forEach(link => link.getAttribute('href').match(new_section) && link.classList.add('active')) + section = new_section + } else { + section = null + } + // window.location.hash = section || "" + } + function preload(src) { + const img = new Image + img.src = src + } + return { + navigateHash: navigateHash + } +})() |
