Widget je malý interaktivní prvek nebo modul na webové stránce, který slouží k zobrazení specifických informací, nebo funkcí.
V našem případě se bude jednat o jednoduchý modul, do kterého zadáte jakékoli město na světě a pomocí vloženého API klíče se nám zobrazí teplota v daném místě.
Abychom měli ještě Widget o něco zajímavější, můžeme si zvolit mezí dvěma hodnotami měření:
Stupně Fahrenheita: Jednotka teploty, kde bod mrazu vody je 32 °F a bod varu 212 °F za normálního atmosférického tlaku, používaná především v USA.
anebo
Stupně Celsia: Jednotka teploty, kde bod mrazu vody je 0 °C a bod varu 100 °C za normálního atmosférického tlaku, běžně používaná ve většině světa.
Po otevření pracovního prostředí elementu HTML nás nejvíce zajímá záložka „Obsah“.
Do políčka „HTML kód“ je potřeba zapsat kód z dalšího odstavce, kde je popsáno i nastavení jednotlivých atributů.
Součástí tohoto kódu je i JavaScript. V tomto případě jsem vložil script rovnou za HTML. Funkce jsou opět z větší části popsány.
Teplota podle Města
Následně po vložení si prosím doplňkové informace vymažte.
getTemperatureColor(temperature, unit): Tato funkce převádí teplotu na Celsius (pokud je v °F) a pak vrací odpovídající barvu v závislosti na teplotní hodnotě:
Jak to implementovat:
Další možnosti, resp. poskytovatelé API klíčů pro přístup k datům o počasí:
–>Weatherstack (bezplatný plán)
Weatherstack je další služba, která nabízí bezplatný plán s omezeným počtem požadavků (50 požadavků denně).
Jak to implementovat:
–> Další alternativní dostupné možnosti
Pokud hledáte další varianty zdarma pro dostupné informace o počasí, doporučuji Vám i tyto služby:
Při použití jiného poskytovatel API klíče si pak nezapomeňte upravit i nastavení odkazu při použití jiného serveru. nyní je odkazováno na Weather API.
Styling widgetu:
text-align: center
).:hover
).#1680F2
).display: none
) do načtení počasí.
Všechny atributy a mnoho dalšího lze upravit a nastavit pomocí tohoto CSS.
V závorkách jsou dále pak popsány jednotlivé funkce a možnosti. Je dále pak jen na Vás, jak si vzhled upravíte.
/* Stylování pro "temperature-widget-1" */
#temperature-widget-1 {
background-color: #2c3e50; /* Barva pozadí widgetu */
color: white; /* Barva textu */
border-radius: 10px; /* Zaoblené rohy */
padding: 25px;
width: 300px;
height: 350px;
margin: 20px auto; /* Vycentrování widgetu na stránce */
font-family: Arial, sans-serif; /* Písmo pro text */
}
/* Nadpis widgetu */
#temperature-widget-1 h2 {
font-size: 1.4rem;
text-align: center;
margin-bottom: 25px;
color: #ffffff; /* Barva textu nadpisu */
}
/* Vstupní pole pro město */
#temperature-widget-1 #city-input-1 {
width: 100%;
padding: 10px;
font-size: 1rem;
margin-bottom: 10px;
border-radius: 5px;
border: 1px solid #ccc; /* Barva rámečku */
background-color: #34495e; /* Barva pozadí pro vstupní pole */
color: #ecf0f1; /* Barva textu ve vstupním poli */
box-sizing: border-box;
}
/* Tlačítko pro zobrazení počasí */
#temperature-widget-1 #get-weather-1 {
width: 100%;
padding: 10px;
background-color: #3498db; /* Barva pozadí tlačítka */
color: white; /* Barva textu tlačítka */
font-size: 1rem;
border: none;
border-radius: 5px;
cursor: pointer;
}
/* Styl pro tlačítko při najetí myší */
#temperature-widget-1 #get-weather-1:hover {
background-color: #2980b9; /* Barva tlačítka při hoveru */
color: #333333; /* Barva textu tlačítka při hoveru */
}
/* Výstupní oblasti pro město a teplotu */
#temperature-widget-1 #weather-output-1 {
margin-top: 15px;
text-align: center;
display: none; /* Výstup skrytý, dokud není počasí načteno */
}
/* Zobrazení názvu města */
#temperature-widget-1 #city-name-1 {
font-size: 1.5rem;
font-weight: bold;
margin: 10px 0;
color: #1680F2; /* Barva textu názvu města */
}
/* Zobrazení teploty */
#temperature-widget-1 #temperature-1 {
font-size: 1.2rem;
font-weight: normal;
margin-top: 5px;
color: #ecf0f1; /* Barva textu teploty */
}
---
Teplota: --°C
Vítr: -- km/h
V případě, že si budete chtít na jedné stránce vložit více druhů Widgetů se stejným API klíčem, je potřeba tyto elementy rozpoznat/rozlišit pro načítání. Protože v případě, že byste chtěli načítat data ze stejného API klíče, je velmi pravděpodobné, že Vám při načítání vznikne jeden z následujících konfliktů.
Možné problémy při více widgetech na stránce:
Řešení:
První widget:
Teplota: --°C
Druhý widget:
Teplota: --°C
V JavaScriptu pak upravte kód, aby se každý widget odkazoval na svůj vlastní ID:
document.getElementById('temperature-widget-1').textContent = `Teplota: ${data.current.temp_c}°C`;
Namísto toho, aby každý widget volal API samostatně, můžete provést jedno volání API a data sdílet mezi widgety. Tuto možnost zde ale popisovat dnes nebudeme. Já zvolil pro mě jednodušší způsob podle řešení č. 1.
Následně po vložení si prosím doplňkové informace vymažte.
Načítání...
---
Teplota: --°C
Vítr: -- km/h
/* Stylování pro "temperature-widget-2" */
#temperature-widget-2 {
background-color: #34495e; /* Tmavě šedé pozadí */
color: white; /* Bílé písmo */
border-radius: 10px; /* Zaoblené rohy */
padding: 20px;
width: 300px; /* Šířka widgetu */
margin: 20px auto; /* Vycentrování widgetu */
font-family: Arial, sans-serif; /* Základní písmo */
text-align: center;
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1); /* Jemný stín */
}
/* Nadpis widgetu */
#temperature-widget-2 h2 {
font-size: 1.5rem;
margin-bottom: 20px;
color: #ffffff; /* Barva textu nadpisu */
}
/* Informace o počasí */
#weather-info-2 {
display: flex;
flex-direction: column;
align-items: center;
}
/* Ikona počasí */
#weather-icon-2 img {
width: 80px; /* Velikost ikony */
height: 80px;
margin-bottom: 15px;
}
/* Popis počasí */
#description-2 {
font-size: 1.2rem;
margin: 5px 0;
color: #ecf0f1; /* Barva textu popisu počasí */
}
/* Teplota */
#temperature-2 {
font-size: 1.2rem;
font-weight: bold;
margin: 5px 0;
color: #f39c12; /* Výchozí barva textu teploty */
}
/* Vítr */
#wind-2 {
font-size: 1.2rem;
margin: 5px 0;
color: #3498db; /* Barva textu větru */
}
Styling widgetu:
text-align: center
).:hover
).#1680F2
).display: none
) do načtení počasí.
Všechny atributy a mnoho dalšího lze upravit a nastavit pomocí tohoto CSS.
V závorkách jsou dále pak popsány jednotlivé funkce a možnosti. Opět je pak jen na Vás, jak si vzhled upravíte.
Vložení Widgetů jako informace o počasí může být zajímavým doplňkem, který může zatraktivnit Vaše stránky.
Návštěvníkovi pak podat i zajímavou a relevantní informaci.
A opět lehkou úpravou kódu si můžete celý Widget upravit podle Vašich představ, tak, aby vše korespondovalo s Vaší prezentací.
Tak ať se Vám daří při tvorbě webu!
© 2025 Všechna práva vyhrazena | Bear Hugs s.r.o.
Abychom poskytli co nejlepší služby, používáme k ukládání a/nebo přístupu k informacím o zařízení, technologie jako jsou soubory cookies. Souhlas s těmito technologiemi nám umožní zpracovávat údaje, jako je chování při procházení nebo jedinečná ID na tomto webu. Nesouhlas nebo odvolání souhlasu může nepříznivě ovlivnit určité vlastnosti a funkce. Bear Hugs s.r.o.