-
Notifications
You must be signed in to change notification settings - Fork 1
/
scripts.js
63 lines (52 loc) 路 1.57 KB
/
scripts.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import data from "./data.js"
const accessOrInteract = () => Math.round(Math.random()) === 0 ? 'Acessar' : 'Interagir'
const buildHeader = () => `
<div class="headerwrapper">
<header>
<h1>
<i class="fa fa-dropbox"></i>
<span>Dropbox</span>
</h1>
<button class="openmenu">${accessOrInteract()}</button>
</header>
</div>
`
const buildSection = (props) => `
<section class="${props.variant}">
${buildHeader()}
<div class="content">
<h2>${props.title}</h2>
<p>${props.description}</p>
</div>
</section>
`
const sections = data.map(buildSection).join('')
document.querySelector('#sections').innerHTML = sections
// Side menu
const sidemenu = document.querySelector('#sidemenu')
// update on scroll
window.addEventListener('scroll', onScroll)
function onScroll() {
// console.log(window.scrollY)
updateScrollY()
}
function updateScrollY() {
sidemenu.classList.remove('open')
sidemenu.classList.add('scrollOpen')
if (window.scrollY > 300) {
sidemenu.classList.remove('scrollOpen')
}
}
updateScrollY()
// add/remove active class to menu
function updateActive() {
console.log('updating active')
sidemenu.classList.remove('scrollOpen')
sidemenu.classList.toggle('open')
}
updateActive()
document.querySelector('#close')
.addEventListener('click', updateActive)
// open/close menu with header click
document.querySelectorAll('button.openmenu')
.forEach( button => button.addEventListener('click', updateActive))