Monthly Archives: March 2010

Mocná jQuery se představuje

jQuery (domovská stránka) je jednoznačně jedna z nejpoužívanějších JavaScriptových knihoven na webu. Stejně jako jí podobné knihovny (například Prototype) velmi výrazně usnadňuje skriptování HTML stránek ve stylu Webu 2.0 zejména tím, že

  • jednak do JavaScriptu přináší XPath a CSS selectory a zjednodušuje navazování JavaScriptového kódu na HTML stránku – už žádné GetElementById()!,
  • druhak nabízí mocné nástroje pro přidávání “onNěco” efektů, animací nebo prostou manipulaci DOM, zkrátka veškeré webové skriptování.
  • Třešničkou na dortu je podpora AJAXu, který přes jQuery provedete snadněji, rychleji a přehledněji, než kdy dřív
  • a zlatým hřebem pak možnost rozšířit si jQuery pomocí tisíce pluginů, co se válí na webu. Chcete mít rychle galerii fotek? Vygooglete si na to plugin!

Pokud chcete prozkoumat jQuery podrobněji, doporučuju rozhodně začít s Quick Start tutorial a Od každého něco tutorial na stránkách knihovny. Další texty, tutoriály i dokumentaci najdete tamtéž. Z externích zdrojů je možná dobré mrknout se na článek JavaScript Dollar Sign ($) – What is it for?, který se zabývá znakem dolaru, který je v jQueryovských (i Prototypovských) skriptech velice hojný.

Bratrstvo dolaru

jQuery je zabalená ve stejnojmenném objektu. Psát pořád jQuery, to se ale nikomu nechce, a tak se ten objekt pojmenuje $, což je v JavaScriptu zcela legální jméno proměnně. Stejnětak bychom mohli udělat

var _ = $

a psát místo dolaru podtržítko. Navíc, jak je uvedeno ve výše odkazovaném článku, dolar je sexy.

Já a jQuery

V jQuery jsem si z hecu vytvořil malou fotogalerii pro pět fotek Gymnázia Křenová (demo je tu taky). Má spoustu slabin, do praxe se moc nehodí, ale tu stránku co tvoříme v IVT myslím vyšperkuje :P

V kódu bych chtěl vyzdvihnout zejména tyto momenty:

<script type="text/javascript"
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js">
</script>

Tady nám knihovnu jQuery hostuje Google. Je vysoká pravděpodobnost, že klienti ji budou mít v chache prohlížeče, navíc to zjednodušuje aktualizaci knihovny. Nevýhodou je, že se dáváme všanc jedné firmě. Moje galerie totiž neumí “se ctí zdegradovat” a bez jQuery je nepoužitelná.

<div id="image-thumb">
 <ul>
 <li>
 <img src="fasada.jpg" alt="Náš buldynek, Gymnasium se staromileckým es.">
 </li>
 <li>
 <img src="PIC26.jpg" alt="Chtělo by to výtah. AFAIK na Jarošce výtah mají :P ">
 </li>
 <li>
   ....

Obrázky, se kterými pracujeme, jsou normálně uvedené v kódu stránky. Není potřeba psát nějakou JavaScriptovou strukturu (nejspíš pole) s adresama a popiskama. Díky jQuery si tohle všechno ze stránky rychle vytáhneme. To by se hodilio, kdybych chtěl zapracovat na graceful degradation.

$(document).ready(function() {
 // This is more like it!
 // Přípravné práce
 // Zobrazíme první obrázek v seznamu
 var img = $("#image-thumb img").eq(0);
 img.addClass("activ");

Konečně se dostáváme k jQuery (přistupujeme k ní přes dolar). Takhle pěkně stvoříme nepojmenovanou funkci, která se zavolá, až bude stránka pro nás připravená. $(document).ready je událost zavolaná v okamžiku, kdy se stránkou můžeme bezpečně manipulovat z JavaScriptu (nemusí být ještě úplně vykreslená, mohou chybět obrázky. Máme vytvořený DOM, a to je to, na čem záleží)

Takové to

$("#image-thumb img").eq(0)

je elementární použítí selektorů. Ze stránky vybereme to, co je obrázek vnořený v divu s id image-thumb a pomocí .eq(0) si vezmeme ten první obrázek. Jednoduché

$("#caption-container").click( function(a) {
 $(this).fadeOut("fast");
 });

Tři řádky kódu a otravný popisek co má nastavené id caption-container už je možné schovat kliknutím na něj. Navíc se to zanimuje – to je to fadeOut.

if($(this).is(".activ")) {return true;}

Jak rychle vyběhnout z funkce, pokud má prvek class=activ.

function display(src, alt) {
 $("#image-container > img").attr("src", src);
 $("#image-container .desc").html(alt);
 return true;
 }

Dejte téhle funkci adresu a popisek, a ona vám ho zobrazí v divu #image-container

Ještě tu mám nějaké animace, ale to jsem jen tak zbastlil, aby to jelo, tak tím se chlubit nebudu :P

Závěr

Ukázali jsme si, že s jQuery se dají elegantně dělat poměrně efektní věci. Pokud ještě s použitím jQuery váháte, přečtěte si adoption story na odkazovaném webu.

Druhé pololetí školního roku 2009/2010 začalo

Se začátkem pololetí bývá spojeno ukončení pololetí starého. V mojí 8.A8, nejskvostnější a nejperspektivnější třídě na Gymnáziu, Brno, Křenová 36 se tak stalo udělením výpisů z pololetního vysvědčení.

Tak se samozřejmě stalo na všech školách v celé Republice, ale jen u nás se tohoto radostného úkolu ujal náš letitý (jakože nás už má pátým rokem) třídní prof. Aleš Kubík. Radostného proto, že naše třída má stabilně nejlepčí prospěch na celém ústavu (fotka na PicasaWebu), a tak jsme zase dostali volný den určený na třídní výlet.

Němčina

Naši třídu poctili svoji návštěvou postupně hned dva představitelé vedení školy. Nejprve nám prof. Špičková oznámila, že ve druhém pololetí našim DSDčkařům odpustí jednu hodinu němčiny s rodilou mluvčí, Fr. Kögler, druhá návštěva se týkala přihlášek na VŠ.

Abychom ale zůstali u němčiny, druhý návštěvník byl prof. Jaroš, ředitel školy, osobně, který odchytl prof. Micheleho, jak jde pozdě do hodiny, a přivařil se na něj, jakože si nafotí notebookovou jazykovku v akci – při jeho-naší hodině. V té třídě nás byly sotva tři kusy. Prof. Michele to vysvětlil, že jsme špatně pochopili instrukce (my jsme ta horší skupina němčiny ;-) ) a tak teďkonc posloucháme pozorně, kdyby náhodou ještě někdy někdo přišel.

Vejšky

Prof. Špičková se nás jednou přišla optat, zda někdo podává papírovou přihlášku. Ře pokud ano, máme za ní přijít a ona ji vyplní s náma. Řekli jsme ji, že ne. Tehdá to asi byla pravda, protože to Jonáš ještě nevěděl, že se hodlá hlásit na Informační vědu a knihovnictví na FF do Prahy, kam berou jen papírovou přihlášku.

Maturity

Včera, 17. 2. 2010 jsme psali na prvních 16 otázek v češtině, ještě od den před tím mě prof. Watson vyzpovídal na téma Sci&Tech, tedy “Science and Technology”. Na jednu stranu nám vybíral otázky, které myslel že nám sednou. Což u mě byla pravda – mluvil jsem o mobilech a zkřivené páteři a omrzlých nohách při sezení u počítače, 8 minut úplně v pohodě. I tak to ale byla cenná zkušenost, páč jsem doposavad na maturitní otázku vyvolaný nebyl.

No a dneska byla Bižule, kde jsme asi psali tu písemku na otázku dle svého vlastního výběru.

NSZ

V pátek 12. 3. se psaly Scia. Já jsem se vydal na OSP a Matiku, psalo ještě tak 5 lidí ze třídy, např Michal, Víťa, Ríša, Filip. Možná Bára… taky třeba i ZSV se psalo… Michal došel do třídy s laptopem, aby mohl pravidelně chechkovat předběžné výsledky, podíval se i ostatním. Já jsem narazil na důsledky metody Sešítek s hesly – tedy že si pak ty hesla nepamatuju a musel jsem si počkat až se dostanu dom.

No, všichni jsme dostali, co jsme potřebovali dostat. Moc mě nevyšla ta druhá část (ti generálové a pod.), tam jsem měl jen 67 %, dohromady i s těma zbývajícíma se mi to ale zvedlo na výsledných 85 %, což už je docela pěkný.

Teď před velikonocema nás prof. Trávníček nabrífuje na maturitní písemky. Píšeme nějaké dějáky a občanky, maturitní zkoušení ve F (na deset otázek), kdo chodí do matiky, tak i v matice; takže vlastně nic mimořádnýho nás ten příští týden nečeká…

Co s nefungujícím Tabulátorem v Ubuntu

Svoji klávesnici mám docela rád. Má nízký zdvih, notebookový “feel”, cosi jako X-Touch for the best writing experience… ovšem z nějakého důvodu se na ní zadrhává tabulátor. Co s tím?

Klávesu se mi opravit nepodařilo. Když klávesu vydělám, všechno vypadá normálně… Programovat se zadrhávajícím Tabem je utrpení, takže se s tím musí něco udělat softwarově!

xmodmap

Kupovat novou klávesnici nepřipadá v úvahu (vždyť tu současnou mám necelý rok), co se reklamace týče, nejsem si moc jistý, jak by to dopadlo. Naštěstí je tady xmodmap. Pomocí dvou příkazů nejprve zrušíme klávesu Caps Lock, a potom na něj namapujeme tabulátor. Vypadá to asi takhle:

xmodmap -e "clear Lock"
xmodmap -e "keysym Caps_Lock = Tab"

Jednoduché.

Aby se tyhle příkazy provedly vždy po přihlášení, zapište je do souboru ~/.xprofile či ~/.xinitrc . Místo xmodmap budete možná muset napsat /usr/bin/xmodmap

Zdroje

[1] – http://wiki.archlinux.org/index.php/Extra_Keyboard_Keys_in_Xorg

[2] – man xmodmap