⊗jsPrCndMChA 62 of 62 menu

Setas para mudar o mês no calendário em JavaScript

Agora vamos adicionar setas abaixo do calendário para mudar o mês. Vamos fazer alterações no código HTML:

<div id="parent"> <div id="calendar"> <div class="info">Jan 2020</div> <table> <thead> <tr> <th>seg</th> <th>ter</th> <th>qua</th> <th>qui</th> <th>sex</th> <th>sáb</th> <th>dom</th> </tr> </thead> <tbody class="body"></tbody> </table> <div class="nav"> <a href="#" class="prev">←</a> <a href="#" class="next">→</a> </div> </div> </div>

Vamos fazer alterações no código CSS:

#parent { text-align: center; } #calendar { display: inline-block; } #calendar td, #calendar th { padding: 10px; border: 1px solid black; text-align: center; } #calendar .nav, #calendar .info { text-align: center; } #calendar a { color: blue; font-size: 25px; text-decoration: none; } #calendar a:hover { color: red; } #calendar .active { color: red; }

Vamos obter as referências para as setas em variáveis:

let prev = calendar.querySelector('.prev'); let next = calendar.querySelector('.next');

Discussão

Agora vamos discutir como resolver a tarefa. Na verdade, o código do nosso calendário foi escrito de forma facilmente extensível: temos a função draw, que desenha o calendário para um determinado mês. Assim, ao clicar em uma seta, podemos redesenhar o calendário com um número de mês diferente (e possivelmente ano).

Aqui está um exemplo do que podemos fazer ao clicar na seta do próximo mês:

next.addEventListener('click', function() { draw(body, getNextYear(year, month), getNextMonth(month)); });

Como você pode ver, aqui são usadas as funções getNextYear e getNextMonth. Vamos discutir o que elas devem fazer.

Como o nome sugere, a função getNextYear obtém o próximo ano. Isso significa que, se agora é dezembro, ao mudar para o próximo mês o ano deve aumentar em 1. Se não for dezembro, a função simplesmente deve retornar o ano atual.

A função getNextMonth deve obter o próximo mês. Para todos os meses, exceto dezembro, ela adicionará um ao número do mês. E para dezembro, o próximo mês será janeiro com o número 0.

Operações semelhantes devem ser feitas ao clicar no botão do mês anterior:

prev.addEventListener('click', function() { draw(body, getPrevYear(year, month), getPrevMonth(month)); });

Implemente a funcionalidade dos botões de mudança de mês.

Faça com que a informação acima do calendário corresponda ao mês e ano exibidos.

azbydeenesfrkakkptruuz