-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
65 lines (50 loc) · 1.53 KB
/
script.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
64
65
// Seleção de elementos
const menuBtn = document.querySelector("#menu")
const closeMenuBtn = document.querySelector("#close-menu")
const menu = document.querySelector("#mobile-navbar")
const desktopLinks = document.querySelectorAll("#navbar a")
const mobileLinks = document.querySelectorAll("#mobile-navbar a")
const allLinks = [...desktopLinks, ...mobileLinks]
const slides = document.querySelectorAll(".banner")
const dots = document.querySelectorAll(".dot")
let slideIndex = 0
// Funções
function smoothScroll(e) {
e.preventDefault()
const href = this.getAttribute("href")
const offsetTop = document.querySelector(href).offsetTop
scroll({
top: offsetTop,
behavior: "smooth"
})
setTimeout(() => {
if(menu.classList.contains("menu-active")) {
menu.classList.remove("menu-active")
}
}, 300)
}
function showSlides() {
for(let i = 0; i < slides.length; i++) {
slides[i].classList.remove("active")
dots[i].classList.remove("active")
}
slideIndex++
if(slideIndex > slides.length) {
slideIndex = 1
}
slides[slideIndex - 1].classList.add("active")
dots[slideIndex - 1].classList.add("active")
setTimeout(showSlides, 3000)
}
// Eventos
menuBtn.addEventListener("click", (e) => {
menu.classList.add("menu-active")
})
closeMenuBtn.addEventListener("click", (e) => {
menu.classList.remove("menu-active")
})
allLinks.forEach((link) => {
link.addEventListener("click", smoothScroll)
})
// Inicialização
showSlides()