⊗jsPrCndMChA 62 of 62 menu

Šipky pro změnu měsíce v kalendáři na JavaScriptu

Pojďme nyní pod kalendář přidat šipky pro změnu měsíce. Proveďme změny v HTML kódu:

<div id="parent"> <div id="calendar"> <div class="info">Led 2020</div> <table> <thead> <tr> <th>po</th> <th>út</th> <th>st</th> <th>čt</th> <th>pá</th> <th>so</th> <th>ne</th> </tr> </thead> <tbody class="body"></tbody> </table> <div class="nav"> <a href="#" class="prev">←</a> <a href="#" class="next">→</a> </div> </div> </div>

Proveďme změny v CSS kódu:

#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; }

Získáme odkazy na šipky do proměnných:

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

Diskuse

Pojďme nyní diskutovat o tom, jak úlohu řešit. Ve skutečnosti je kód našeho kalendáře napsán dobře rozšiřitelným způsobem: máme funkci draw, která vykresluje kalendář pro zadaný měsíc. Takže při kliknutí na šipku můžeme překreslit kalendář s jiným číslem měsíce (a možná roku).

Zde je příklad toho, co můžeme udělat po kliknutí na šipku následujícího měsíce:

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

Jak vidíte, zde se používají funkce getNextYear a getNextMonth. Pojďme diskutovat o tom, co by měly dělat.

Jak název napovídá, funkce getNextYear získá následující rok. Zde se myslí to, že pokud je nyní prosinec, pak při přepnutí na následující měsíc by se rok měl zvýšit o 1. Pokud však nyní není prosinec, funkce by měla jednoduše vrátit aktuální rok.

Funkce getNextMonth by měla získat následující měsíc. Pro všechny měsíce kromě prosince bude k číslu měsíce přidávat jedničku. No a pro prosinec bude následujícím měsícem leden s číslem 0.

Podobné operace by se měly provést při kliknutí na tlačítko předchozího měsíce:

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

Implementujte funkci tlačítek pro změnu měsíce.

Zařiďte, aby informace nad kalendářem odpovídala zobrazenému měsíci a roku.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout