-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
297 lines (234 loc) · 11.1 KB
/
main.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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
/*Aula 4
A declaração const indica que se trata de uma variável que não será alterada
em nenhuma instância do código.Isso significa que serão sempre quatro botões.
Vamos declarar a variável const botoes, e atribuir a ela um comando que busca tudo
que existe a classe botão.Queremos todas as informações relacionadas à classe,
por isso utilizaremos o querySelectorAll(), cujo interior dos parênteses receberá um
.botao entre aspas, assim como nomeamos uma classe.*/
/*Laço de repetição for para adicionar um evento de escuta, principalmente quando os
botões forem clicados, porque quando houver um clique, ele precisa adicionar a classe ativo no botão clicado.*/
/*Entre os parênteses de for(), o primeiro valor a ser adicionado é a declaração da variável i.
Essa variável vai mudar ao longo do tempo no código, então ela é uma variável do tipo let.
Vamos iniciá-la com o valor 0.Este laço irá se repetir enquanto i for menor que o comprimento dos botões
(ou seja, botões.length) e vai incrementar de um por meio do comando i++, que é a mesma coisa que i = i + 1.*/
/*Adicionar um evento de escuta para realizar uma ação,chamamos de .onClick(). Vamos abrir uma linha entre a
declaração do for() e adicionar botoes[i].onclick.*/
/*Esse on click, vai perguntar as ações que queremos realizar. E quando agrupamos uma série de comandos,
criamos uma função.Então, à direita de botoes[i].onclick, adicionaremos um sinal de igual e uma function()
com um bloco de chaves.Ela só precisa realizar uma tarefa para nós e para essa tarefa, quando ela for ativada,
o botoes na posição i adicione a classe ativo. Adicionaremos entre as chaves da função um
botoes[i].classList.add("ativo").*/
/*OBS: Antes de adicionar a classe ativo, poderíamos remover todas as classes ativo de todos os botões
e só adicionar naquele que desejamos que receba a classe, então diremos ao sistema "remova", faremos um
laço de repetição for() dentro das chaves da function(), acima da linha que adiciona a classe.
Esse laço receberá entre parênteses a variável let j=0, em seguida, adicionaremos o j++.
Em vez de adicionar, vamos remover. Portanto, adicionaremos entre as chaves do for() um botoes na posição j
junto ao .classList.remove("ativo").
const botoes = document.querySelectorAll(".botao");
for(let i=0;i <botoes.length;i++){
botoes[i].onclick = function(){
for(let j=0;j<botoes.length;j++){
botoes[j].classList.remove("ativo");
}
botoes[i].classList.add("ativo");
}
}
*/
/*Aula 5
const botoes = document.querySelectorAll(".botao");
const textos = document.querySelectorAll(".aba-conteudo");
for (let i = 0; i < botoes.length; i++) {
botoes[i].onclick = function () {
for (let j = 0; j < botoes.length; j++) {
botoes[j].classList.remove("ativo");
textos[j].classList.remove("ativo");
}
botoes[i].classList.add("ativo");
textos[i].classList.add("ativo");
}
}
const contadores = document.querySelectorAll(".contador");
const tempoObjetivo1 = new Date("2023-10-05T00:00:00");
let tempoAtual = new Date();
contadores[0].textContent = tempoObjetivo1 - tempoAtual;
//Aula6 - conversão dos números em segundos, minutos, horas e dias.
const botoes = document.querySelectorAll(".botao");
const textos = document.querySelectorAll(".aba-conteudo");
for (let i = 0; i < botoes.length; i++) {
botoes[i].onclick = function () {
for (let j = 0; j < botoes.length; j++) {
botoes[j].classList.remove("ativo");
textos[j].classList.remove("ativo");
}
botoes[i].classList.add("ativo");
textos[i].classList.add("ativo");
}
}
const contadores = document.querySelectorAll(".contador");
const tempoObjetivo1 = new Date("2023-10-05T00:00:00");
//chamar uma função chamada calculaTempo(), que terá como parâmetro de entrada o tempoObjetivo1.
contadores[0].textContent = calculaTempo(tempoObjetivo1);
function calculaTempo(tempoObjetivo) {
let tempoAtual = new Date();
let tempoFinal = tempoObjetivo - tempoAtual;
let segundos = Math.floor(tempoFinal / 1000);
let minutos = Math.floor(segundos / 60);
let horas = Math.floor(minutos / 60);
let dias = Math.floor(horas / 24);
segundos %= 60;
minutos %= 60;
horas %= 24;
return dias + " dias " + horas + " horas " + minutos + " minutos " + segundos + " segundos";
}*/
//Aula7 - Automatizando atualizações
/*
const botoes = document.querySelectorAll(".botao");
const textos = document.querySelectorAll(".aba-conteudo");
for (let i = 0; i < botoes.length; i++) {
botoes[i].onclick = function () {
for (let j = 0; j < botoes.length; j++) {
botoes[j].classList.remove("ativo");
textos[j].classList.remove("ativo");
}
botoes[i].classList.add("ativo");
textos[i].classList.add("ativo");
}
}
/*1ª explicação
// definição do tempo dos objetivos
const contadores = document.querySelectorAll(".contador");
const tempoObjetivo1 = new Date("2024-10-05T00:00:00");
const tempoObjetivo2 = new Date("2024-10-30T00:00:00");
const tempoObjetivo3 = new Date("2024-11-05T00:00:00");
const tempoObjetivo4 = new Date("2024-12-30T00:00:00");
//chamar uma função chamada calculaTempo(), que terá como parâmetro inicial de entrada o tempoObjetivo1.
contadores[0].textContent = calculaTempo(tempoObjetivo1); //aba de divisão de conteúdo, que vai receber a função
contadores[1].textContent = calculaTempo(tempoObjetivo2); //aba de divisão de conteúdo, que vai receber a função
contadores[2].textContent = calculaTempo(tempoObjetivo3); //aba de divisão de conteúdo, que vai receber a função
contadores[3].textContent = calculaTempo(tempoObjetivo4); //aba de divisão de conteúdo, que vai receber a função
function calculaTempo(tempoObjetivo) {
let tempoAtual = new Date();
let tempoFinal = tempoObjetivo - tempoAtual;
let segundos = Math.floor(tempoFinal / 1000);
let minutos = Math.floor(segundos / 60);
let horas = Math.floor(minutos / 60);
let dias = Math.floor(horas / 24);
segundos %= 60;
minutos %= 60;
horas %= 24;
return dias + " dias " + horas + " horas " + minutos + " minutos " + segundos + " segundos";
}
Fim da 1ª explicação*/
/*2ª explicação - Automatizando o código:
// definição do tempo dos objetivos
const contadores = document.querySelectorAll(".contador");
const tempoObjetivo1 = new Date("2024-10-05T00:00:00");
const tempoObjetivo2 = new Date("2024-10-30T00:00:00");
const tempoObjetivo3 = new Date("2024-11-05T00:00:00");
const tempoObjetivo4 = new Date("2024-12-30T00:00:00");
//automatizar o código, criar uma variável chamada tempos, que receberá uma lista.
const tempos =
[tempoObjetivo1,tempoObjetivo2,tempoObjetivo3,tempoObjetivo4];
//laço de repetição que altera automaticamente o valor do índice para 0, 1, 2 e 3,automatizando o código.
/*for (let i = 0; i < contadores.length; i++) {
contadores[i].textContent = calculaTempo(tempos[0]);
}
//substituindo o valor do índice (0) pela variável contadora i.
for (let i = 0; i < contadores.length; i++) {
contadores[i].textContent = calculaTempo(tempos[i]);
}
*/
//3ª explicação - função para atualizar o cronômetro:
/*
// definição do tempo dos objetivos
const contadores = document.querySelectorAll(".contador");
const tempoObjetivo1 = new Date("2023-10-05T00:00:00");
const tempoObjetivo2 = new Date("2024-10-30T00:00:00");
const tempoObjetivo3 = new Date("2024-11-05T00:00:00");
const tempoObjetivo4 = new Date("2024-12-30T00:00:00");
//automatizar o código, criar uma variável chamada tempos, que receberá uma lista.
const tempos =
[tempoObjetivo1,tempoObjetivo2,tempoObjetivo3,tempoObjetivo4];
/*substituindo o valor do índice (0) pela variável contadora i.
for (let i = 0; i < contadores.length; i++) {
contadores[i].textContent = calculaTempo(tempos[i]);
}*/
/*
//função para atualizar o cronômetro e no escopo da função (entre chaves) adicionar o laço de repetição.
function atualizaCronometro(){
for (let i=0; i<contadores.length;i++){
contadores[i].textContent = calculaTempo(tempos[i]); }
}
//após a declaração da função, chamamos por ela novamente:
function comecaCronometro(){
atualizaCronometro();
setInterval(atualizaCronometro,1000);
}
comecaCronometro();
function calculaTempo(tempoObjetivo) {
let tempoAtual = new Date();
let tempoFinal = tempoObjetivo - tempoAtual;
let segundos = Math.floor(tempoFinal / 1000);
let minutos = Math.floor(segundos / 60);
let horas = Math.floor(minutos / 60);
let dias = Math.floor(horas / 24);
segundos %= 60;
minutos %= 60;
horas %= 24;
if (tempoFinal > 0){
return dias + " dias " + horas + " horas " + minutos + " minutos " + segundos + " segundos";
} else {
return "Prazo Finalizado";
}
}
/*se o tempo for menor que zero, devemos programar para
que seja exibida uma mensagem de que o prazo foi esgotado. Dessa
forma, a contagem do tempo que resta ocorrerá apenas se esse tempo
for positivo.*/
const botoes = document.querySelectorAll(".botao");
const textos = document.querySelectorAll(".aba-conteudo");
for (let i = 0; i < botoes.length; i++) {
botoes[i].onclick = function () {
for (let j = 0; j < botoes.length; j++) {
botoes[j].classList.remove("ativo");
textos[j].classList.remove("ativo");
}
botoes[i].classList.add("ativo");
textos[i].classList.add("ativo");
}
}
const contadores = document.querySelectorAll(".contador");
const tempoObjetivo1 = new Date("2024-11-25T00:00:00");
const tempoObjetivo2 = new Date("2025-01-05T00:00:00");
const tempoObjetivo3 = new Date("2025-06-10T00:00:00");
const tempoObjetivo4 = new Date("2027-12-17T00:00:00");
const tempos = [tempoObjetivo1,tempoObjetivo2,tempoObjetivo3,tempoObjetivo4];
function calculaTempo(tempoObjetivo) {
let tempoAtual = new Date();
let tempoFinal = tempoObjetivo - tempoAtual;
let segundos = Math.floor(tempoFinal / 1000);
let minutos = Math.floor(segundos / 60);
let horas = Math.floor(minutos / 60);
let dias = Math.floor(horas / 24);
segundos %= 60;
minutos %= 60;
horas %= 24;
if (tempoFinal > 0){
return [dias,horas,minutos,segundos];
} else {
return [0,0,0,0];
}
}
function atualizaCronometro(){
for (let i=0; i<contadores.length;i++){
document.getElementById("dias"+i).textContent = calculaTempo(tempos[i])[0];
document.getElementById("horas"+i).textContent = calculaTempo(tempos[i])[1];
document.getElementById("min"+i).textContent = calculaTempo(tempos[i])[2];
document.getElementById("seg"+i).textContent = calculaTempo(tempos[i])[3];
}
}
function comecaCronometro(){
atualizaCronometro();
setInterval(atualizaCronometro,1000);
}
comecaCronometro();