Hlavní navigace

MooTools: nový sexy javascriptový framework

MooTools jsou stejně jako jQuery a Prototype javascriptový framework, který poskytuje nástroje pro snadný a rychlý vývoj moderních javascriptových aplikací. Jsou čisté a objektové a používají je i takové značky jako Ubuntu, Joomla nebo Jeep. Jaké MooTools jsou a co přinášejí?

Tweetni to Odměnte autora  Jak to funguje?

Co jsou MooTools?

Ve vývoji javascriptových frameworků existují dva hlavní trendy – striktní dodržování zapouzdření a operování pouze na vlastním písečku (tedy namespace) nebo rozšiřování již existujících objektů. Příkladem frameworku striktně dodržujícího zapouzdření je jQuery nebo YUI, příkladem frameworku rozšiřujícím již existující objekty je Prototype.

Oba přístupy mají něco do sebe. Většina webových vývojářů preferuje ono zapouzdření z obavy možné kolize. Tím pádem se nemusí obávat toho, že jejich skripty budou nekompatibilní se skripty třetích stran, na druhou stranu ale přicházejí o všechny ty užitečné metody, které by se daly doprogramovat do již existujících objektů.

MooTools chtějí poskytovat maximální možné pohodlí, a tak volí cestu rozšiřování objektů. Ostatně riziko kolize je sice nezanedbatelné, ale zas není tak extra velké, zejména uvážíme-li, jakým způsobem se dnes JavaScript píše – stáhnutím frameworku a dohledáním příslušných pluginů právě pro daný framework.

Filosofie MooTools

Osobně se nemůžu zbavit dojmu, že cílem jQuery je dělat z JavaScriptu něco, čím není1). Vývojáři MooTools jsou si vědomi krás JavaScriptu a nedělají z něj, co není – prostě jej pouze vylepšují.

Co se týče programátorských technik, MooTools mají jasno – objekty, objekty a ještě jednou objekty. Skutečně OOP v MooTools je velmi dotažené a je opravdu radost s takovým rozhraním pracovat.

MooTools jsou intenzivně inspirované programovacím jazykem Ruby, takže pokud tento jazyk ovládáte, v MooTools se určitě neztratíte. Stejně jako Ruby i MooTools mají značnou zálibu ve funkcionálních technikách, což je činí velmi mocnými.

Kompatibilita s prohlížeči

Co se týče kompatibility s prohlížeči, MooTools jsou kompatibilní a testované proti IE 6 a 7, Safari 2 a 3, Firefox 2 a 3 a Opera 9. Když uvážíme, že převážná většina osatních prohlížečů staví na jádře některého z uvedených prohlížečů, lze říci, že MooTools podporují všechny alespoň trochu významněji rozšířené prohlížeče.

Kdo MooTools používá?

MooTools, byť jsou relativně mladé, jsou dnes již docela rozšířené. Pro příklad nemusíme chodit nijak daleko – na svých stránkách je používá například Ubuntu, Joomla nebo W3C, dále pak například Jeep, Vimeo nebo CNET.com.

Zkoušíme MooTools

Málokomu se chce kvůli každému článku hned něco stahovat a nastavovat. Naštěstí nemusíte. Existuje jedna mooc šikovná moostránka. Jmenuje se Mootorial a umožňuje vyzkoušení MooTools skrze Firebug či, pokud nemáte Firefox s nainstalovaným Firebugem, jeho MooToolsovou náhradu.

Co MooTools umí

CSS selektory a pseudoselektory

Každý pořádný javascriptový framework dnes umí CSS selektory a pseudoselektory používat. MooTools nejsou výjimkou. Syntaxe je stejná jako v Prototype, tedy $('id') a $$('selektor'). V MooTools, stejně jako ve většině ostatních frameworků, lze s polem elementů pracovat stejně jako s jedním elementem, takže lze dělat například toto:

// Každému lichému <tr> bude přidána CSS třída odd
$$('table tr:odd').addClass('odd');

// Vrátí všechny odkazy, které začínají "mailto:"
$('myElement').getElements('a[href^=mailto:]');

// Vrátí všechny odstavce, které obsahují text "find me"
$$('p:contains("find me")');

AJAX a ti ostatní

Klasická forma komunikace se serverem je pomocí XML. Existují formáty, které se hodí lépe – například JSON, nativní formát JavaScriptu. MooTools zvládají jak XML requesty, tak JSON a také HTML requesty, při kterých se prostě vloží HTML nahrané ze serveru do určité části stránky. Prosté a užitečné.

Události

Co se týče událostí, MooTools mají zabudovanou podporu pro práci s klávesami, ať se již jedná o klávesové zkratky či konkrétní klávesy, a také podporu pro různé události související s myší – včetně rolování na všechny možné i nemožné strany.

Efekty

MooTools na rozdíl třeba od Prototype mají mnohé efekty díky Moo.FX přímo zabudované. Například hezké vysouvání textu. V Prototype byste kvůli tomu museli sáhnout po další knihovně, patrně po Script.aculo.us, která ovšem není nejmenší. No dobře, maličké Moo.FX lze používat i s Prototype.

Rozšíření existujících tříd

Zde není moc o čem mluvit. MooTools rozšiřují javascriptové třídy o spoustu užitečných prvků, často inspirovaných Ruby. Implementace je vždy objektová, mnoho metod je funkcionálních. Podívejte se na tyto příklady:

// for cyklus hezky objektově
['Linux', 'Mac OS X', 'Windows'].each(function(os, index) {
  alert(index + " ... " + os);
})
// alert: 0 ... Linux
// alert: 1 ... Mac OS X
// alert: 2 ... Windows

[10, 3, 25, 100].filter(function(item, index) {
  return item > 20;
})
// => [25, 100]

[1, 2, 3].map(function(item, index) {
  return item * 2;
})
// => [2, 4, 6];

(4).times(alert);
// Zobrazí alert 0, 1, 2 a nakonec 3.

"I-like-cookies".camelCase();
//returns "ILikeCookies"

Mootivační prohlídka zajímavých pluginů

Tuto část berte spíše motivačně, pro „namlsání se“, nikoliv jako nějaký kompletní přehled pluginů MooTools.

Lightboxy

Lightboxů pro MooTools existuje poměrně dost. Mně osobně se líbí Multibox, ten je ale dosti velký, takže používám také Slimbox, nicméně možností je spousta.

Slideshow

Sám jsem slideshow na webu zatím nikdy nevyužil, nemám moc rád jakkoliv se „hejbající“ a tedy vyrušující prvky, no ale uznejte, nevypadá to skvěle?

Notifikátory

Osobně se mi velmi líbí Roar, což je napodobenina macovského Growlu. Kdo Growl neznáte, podívejte se prostě na demo.

Našeptávač

Našeptávačů pro MooTools existuje taktéž několik, osobně používám Autocompleter (demo). Má jednoduché rozhraní a je spolehlivý…co chtít víc?

Závěr

MooTools jsou sice poměrně nový, ale zato velmi slibný javascriptový framework. Pokud ještě nejste rozhodnuti, který z dostupných frameworků využiteje, určitě se na MooTools podívejte. Stojí za to.


Poznámky pod čarou

    Odkazy

    Jakub Šťastný

    Jakub Šťastný

    Jakub Šťastný byl v letech 2007 až 2008 redaktorem serveru Root.cz. Mezi jeho zájmy patří Linux, programování a typografický systém TeX.

    Ohodnoťte jako ve škole:
    Průměrná známka 3,10
    Tweetni to Odměnte autora  Jak to funguje?

    Školení: Mobile - web, aplikace nebo responsivní design?

    DW - Školení použitelnosti
    • Proč vůbec řešit uživatele mobilních zařízení.
    • Jak přistupovat k návrhu a správě obsahu pro mobilní digitální produkty.
    • Pochopíte, že mobile je příležitost a ne omezení.

    Chcete pro svůj byznys využit mobilní web, responsivní web nebo mobilní aplikaci? Pomůžeme vám se správně rozhodnout!

    Další informace o školení Mobile - web, aplikace nebo responsivní design?

           

    Přehled názorů

    Novy???
    Let_Me_Be 6. 8. 2008 05:19
    Nový
    ├ 
    Re: Novy???
    nekrytý šek 6. 8. 2008 05:24
    Nový
    ├ 
    Re: Novy???
    starenka 6. 8. 2008 08:45
    Nový
    ├ 
    Re: Novy???
    isnotgood 6. 8. 2008 08:57
    Nový
    └ 
    Re: Novy???
    Jakub Šťastný 6. 8. 2008 10:08
    Nový
    nejsem sexy
    BLEK. 6. 8. 2008 05:20
    Nový
    ├ 
    Re: nejsem sexy
    BLEK. 6. 8. 2008 07:12
    Nový
    │
    ├ 
    Re: nejsem sexy
    ... 6. 8. 2008 07:13
    Nový
    │
    └ 
    go to Japan!
    LENIN POWER! 6. 8. 2008 15:41
    Nový
    └ 
    Re: nejsem sexy
    anonymní uživatel 6. 8. 2008 08:27
    Nový
     
    ├ 
    Re: nejsem sexy
    ... 6. 8. 2008 10:56
    Nový
     
    │
    └ 
    Re: nejsem sexy
    anonymní uživatel 6. 8. 2008 11:43
    Nový
     
    │
     
    └ 
    Re: nejsem sexy
    ultra force 3000 6. 8. 2008 12:22
    Nový
     
    │
     
     
    └ 
    Re: nejsem sexy
    anonymní uživatel 6. 8. 2008 15:26
    Nový
     
    ├ 
    Re: nejsem sexy
    jakub 6. 8. 2008 12:56
    Nový
     
    ├ 
    Re: nejsem sexy
    JS 6. 8. 2008 14:58
    Nový
     
    └ 
    Re: nejsem sexy
    mat 6. 8. 2008 17:13
    Nový
     
     
    ├ 
    Re: nejsem sexy
    anonymní uživatel 6. 8. 2008 17:33
    Nový
     
     
    └ 
    Re: nejsem sexy
    anonymní uživatel 6. 8. 2008 17:36
    Nový
     
     
     
    └ 
    Re: nejsem sexy
    mat 6. 8. 2008 19:08
    Nový
     
     
     
     
    └ 
    Re: nejsem sexy
    anonymní uživatel 6. 8. 2008 19:14
    Nový
     
     
     
     
     
    └ 
    Re: nejsem sexy
    mat 6. 8. 2008 19:21
    Nový
     
     
     
     
     
     
    ├ 
    Re: nejsem sexy
    anonymní uživatel 7. 8. 2008 08:22
    Nový
     
     
     
     
     
     
    └ 
    Re: nejsem sexy
    sNop 9. 8. 2008 20:16
    Nový
    na javascripte neni nic sexy
    ... 6. 8. 2008 07:12
    Nový
    ├ 
    Re: na javascripte neni nic sexy
    Jakub Šťastný 6. 8. 2008 10:06
    Nový
    │
    └ 
    Re: na javascripte neni nic sexy
    ... 6. 8. 2008 17:20
    Nový
    │
     
    └ 
    Re: na javascripte neni nic sexy
    Jakub Šťastný 7. 8. 2008 01:19
    Nový
    ├ 
    Re: na javascripte neni nic sexy
    Greeny 6. 8. 2008 10:38
    Nový
    │
    └ 
    Re: na javascripte neni nic sexy
    ... 6. 8. 2008 14:14
    Nový
    │
     
    └ 
    Re: na javascripte neni nic sexy
    Juraj Chlebec 6. 8. 2008 23:59
    Nový
    │
     
     
    └ 
    Re: na javascripte neni nic sexy
    Jakub Šťastný 7. 8. 2008 01:23
    Nový
    │
     
     
     
    └ 
    Re: na javascripte neni nic sexy
    Martin Hassman 7. 8. 2008 12:50
    Nový
    │
     
     
     
     
    └ 
    Re: na javascripte neni nic sexy
    Jakub Šťastný 7. 8. 2008 13:15
    Nový
    │
     
     
     
     
     
    └ 
    Re: na javascripte neni nic sexy
    Sten 7. 8. 2008 18:30
    Nový
    │
     
     
     
     
     
     
    └ 
    Re: na javascripte neni nic sexy
    Jakub Šťastný 7. 8. 2008 22:07
    Nový
    └ 
    Re: na javascripte neni nic sexy
    sNop 9. 8. 2008 20:17
    Nový
    for cyklus hezky objektově
    anonymní uživatel 6. 8. 2008 08:32
    Nový
    └ 
    Re: for cyklus hezky objektově
    Jakub Šťastný 6. 8. 2008 10:04
    Nový
    clanok
    Mazarik 6. 8. 2008 09:43
    Nový
    └ 
    Re: clanok
    anonymní uživatel 6. 8. 2008 10:08
    Nový
     
    └ 
    Re: clanok
    Mazarik 6. 8. 2008 10:47
    Nový
     
     
    ├ 
    Re: clanok
    js 6. 8. 2008 10:56
    Nový
     
     
    └ 
    Re: clanok
    Radovan 6. 8. 2008 14:32
    Nový
     
     
     
    └ 
    Re: clanok
    Mazarik 6. 8. 2008 14:42
    Nový
     
     
     
     
    ├ 
    Re: clanok
    Radovan 6. 8. 2008 15:03
    Nový
     
     
     
     
    │
    └ 
    Re: clanok
    Jakub Šťastný 7. 8. 2008 01:27
    Nový
     
     
     
     
    └ 
    Re: clanok
    Jakub Šťastný 7. 8. 2008 01:25
    Nový
     
     
     
     
     
    └ 
    Re: clanok
    anonymní uživatel 7. 8. 2008 08:09
    Nový
     
     
     
     
     
     
    └ 
    Re: clanok
    Jakub Šťastný 7. 8. 2008 10:43
    Nový
    // Každému sudému <tr> bude přidána CSS třída odd ...?
    O Simaban Lidan 6. 8. 2008 10:16
    Nový
    └ 
    Re: // Každému sudému <tr> bude přidána CSS třída odd ...?
    Jakub Šťastný 6. 8. 2008 11:18
    Nový
     
    └ 
    Re: // Každému sudému <tr> bude přidána CSS třída odd ...?
    Mazarik 6. 8. 2008 12:11
    Nový
     
     
    └ 
    Re: // Každému sudému <tr> bude přidána CSS třída odd ...?
    Jakub Šťastný 6. 8. 2008 12:36
    Nový
    Problem Javascript
    calavera.info 6. 8. 2008 11:09
    Nový
    ├ 
    Re: Problem Javascript
    Jakub Šťastný 6. 8. 2008 11:25
    Nový
    │
    ├ 
    Re: Problem Javascript
    anonymouse 6. 8. 2008 14:03
    Nový
    │
    │
    ├ 
    Re: Problem Javascript
    Jakub Šťastný 6. 8. 2008 14:27
    Nový
    │
    │
    └ 
    Re: Problem Javascript
    Mazarik 6. 8. 2008 14:31
    Nový
    │
    │
     
    └ 
    Re: Problem Javascript
    anonymouse 6. 8. 2008 15:55
    Nový
    │
    │
     
     
    └ 
    Re: Problem Javascript
    Rejpal 6. 8. 2008 17:26
    Nový
    │
    │
     
     
     
    └ 
    Re: Problem Javascript
    anonymouse 6. 8. 2008 18:27
    Nový
    │
    │
     
     
     
     
    └ 
    Re: Problem Javascript
    Rejpal 6. 8. 2008 18:56
    Nový
    │
    │
     
     
     
     
     
    └ 
    Re: Problem Javascript
    anonymouse 6. 8. 2008 19:21
    Nový
    │
    └ 
    Re: Problem Javascript
    sNop 9. 8. 2008 20:29
    Nový
    ├ 
    Re: Problem Javascript
    Mazarik 6. 8. 2008 12:07
    Nový
    ├ 
    Re: Problem Javascript
    isnotgood 6. 8. 2008 12:16
    Nový
    │
    └ 
    Re: Problem JavascriptRe: Problem Javascript
    isnotgood 6. 8. 2008 12:28
    Nový
    ├ 
    Re: Problem Javascript
    ... 6. 8. 2008 17:31
    Nový
    │
    └ 
    Re: Problem Javascript
    ... 6. 8. 2008 17:35
    Nový
    │
     
    └ 
    Re: Problem Javascript
    Radovan 6. 8. 2008 18:22
    Nový
    └ 
    Re: Problem Javascript
    Pavel Tišnovský 7. 8. 2008 11:08
    Nový
     
    └ 
    Re: Problem Javascript
    Jakub Šťastný 14. 8. 2008 10:19
    Nový
     
     
    └ 
    Re: Problem Javascript
    sNop 14. 8. 2008 10:56
    Nový
    RE: MooTools: nový sexy javascriptový framework
    Jaroslav Šmíd 7. 8. 2008 00:40
    Nový
    Dobry zacatek
    sNop 9. 8. 2008 17:50
    Nový
    └ 
    Re: Dobry zacatek
    sNop 9. 8. 2008 20:42
    Nový
     
    └ 
    Re: Dobry zacatek
    Jakub Šťastný 14. 8. 2008 10:17
    Nový
     
     
    └ 
    Re: Dobry zacatek
    sNop 14. 8. 2008 10:53
    Nový
           

    Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

    Zasílat nově přidané příspěvky e-mailem