Toto je 3. díl seriálu JQuery, pokud se dostatečně neorientujete, zkuste předchozí díl či díl první.
Toto je 3. díl seriálu JQuery, pokud se dostatečně neorientujete, zkuste předchozí díl či díl první.
Pojďme se teď podívat jak našim webovým stránkám dodat kouzlo s nějakými vizuálními efekty, které nám jQuery dává k dispozici.
Schová (hide), zobrazí (show) nebo přepne (toggle) element do opačného stavu viditelnosti.
$(výběr).hide()
- schová element bez efektu.
$(výběr).show()
- zobrazí element bez efektu.
$(výběr).toggle()
- bez efektu schová element, pokud je viditelný nebo jej zobrazí, pokud není vidět.
V následujících příkladech můžete místo funkce použít jakoukoli ze těchto tří funkcí, tedy show, hide nebo toggle:
$(výběr).funkce([milisekundy])
- přidá efekt schování nebo zobrazení, který bude trvat číslem stanovenou dobu v milisekundách. Například: $('#obsah').show(1000)
- zobrazí element #obsah za sekundu.
$(výběr).funkce(<milisekundy> [, callback])
- kromě doby trvání můžete těmto funkcím přidat i callback funkci, která se provede, když efekt doběhne do konce. Všechny efekty jsou samozřejmě asynchronní.
Zobrazení
nav a { display: block; }
$(document).ready(function(){$('nav a').hide();showNextItem();});var itemsTotal = $('nav a').length;var currentItem = 1;function showNextItem(){if (currentItem <= itemsTotal){$('nav a:nth-child('+currentItem+')').show(2000, function(){currentItem++;showNextItem();});}}
<nav><a href="/home">Home</a><a href="/sitemap">Site Map</a><a href="/o-nas">About</a><a href="/kontakt">Contact</a></nav>
Stejné jako show, hide a toggle (popořadě). Element si schová nebo zobrazí se "slide" efektem.
.more { display: none; }
function toggleReadMore(articleId){$('#article'+articleId+'-more').slideToggle();}
<button onclick="window.toggleReadMore(1)">Read More</button><p id="article1-more" class="more">Hello world!<br>Hello world!<br>Hello world!</p>
Fungují opět podobně jako předchozí funkce s efekt "zjevení" nebo "rozetmění".
Přepínání záložek.
.tab { display: none; }#tab-1 {display: block; }
function switchToTab(tabId){$('.tab:visible').fadeOut(500, function(){$('#tab-'+tabId).fadeIn(500);});}
<nav><a href="#" onclick="window.switchToTab(1)">Section 1</a> |<a href="#" onclick="window.switchToTab(2)">Section 2</a> |<a href="#" onclick="window.switchToTab(3)">Section 3</a></nav><section id="tab-1" class="tab"><h1>Section 1</h1><p>Content of section 1.</p></section><section id="tab-2" class="tab"><h1>Section 2</h1><p>Content of section 2.</p></section><section id="tab-3" class="tab"><h1>Section 3</h1><p>Content of section 3.</p></section>
Funkce animate()
nám dává možnost použít přechod z jedné hodnoty do jiné hodnoty jakékoli počitatelné CSS vlastnosti elementu. Například width je počitatelná CSS vlastnost a může být tedy animována:
$(výběr).animate(cssVlastnosti [, trvání] [, dokončenoCallback])
- cssVlastnosti jsou objekt: nové hodnoty CSS vlastností, které by měl element mít na konci animace. Použít i značku přičtení +=
nebo odečtení -=
. Trvání je číslo: v milisekundách jak dlouho by měl efekt trvat.
Pulzující nadpis.
h1 { color: black; }
function increaseAnimation(){$('h1').animate({'font-size': '+=40px','letter-spacing': '1em'},1000,function(){window.decreaseAnimation();});}function decreaseAnimation(){$('h1').animate({'font-size': '-=40px','letter-spacing': '0'},1000,function(){window.increaseAnimation();});}$(document).ready(window.increaseAnimation);
<h1>Heading</h1>
Tímto máme za sebou práci s jQuery efekty. Samozřejmě by se všechno do jednoho článku nevešlo. Více informací naleznete v referenci jQuery.
Párkrát jsme zde použili jednu výjimečnou věc:
$(document).ready(funkce)
Jedná se o spuštění funkce při určité události, konkrétně kompletního načtení stránky. Na práci s událostmi se podíváme v dalším díle seriálu.