jQuery - posouvání elementu v různých směrech
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

jQuery - posouvání elementu v různých směrechjQuery - posouvání elementu v různých směrech

 

jQuery - posouvání elementu v různých směrech

Google       Google       5. 8. 2011       17 381×

Kdo jste se v životě setkal s jQuery, určitě znáte jeho funkce na slidování elementů – tedy .slideUp() a .slideDown(). Tento článek vám ukáže, jak pohybovat s bloky i do jiných směrů.

Reklama
Reklama

I přesto, že jQuery má pěknou sadu metod pro posouvání objektů - .slideDown(), .slideUp() a .slideToggle() – se nám někdy může hodit posouvání objektů v nějakém jiném směru. Koneckonců je velmi jednoduché to udělat.

Obrácení směru posouvání

S výchozími metodami jQuery pro vysouvání elementů je možné docílit toho, aby se prvek vysunul odshora dolů do prostoru, kde bude vidět. Ale co když chceme, aby se prvek vysouval odspoda nahoru? Pointa tohoto je ve správném nastavení CSS stylu. Ale nejprve si ukážeme, jak bude vypadat HTML struktura (která se nemění pro žádný z uvedených příkladů, až na název identifikátoru obalového divu).

<div id="slidebottom" class="slide">
  <button>vysuň</button>
  <div class="inner">vysunutí zespoda</div>
</div>

Abychom docílili u vnitřního divu efektu vysunutí nahoru, připevníme jeho spodní okraj ke spodku nejbližšího pozicovaného obalového prvku – v našem případě #slidebottom.

.slide {
  position: relative;
}
.slide .inner {
  position: absolute;
  left: 0;
  bottom: 0;
}

Ostatní vlastnosti jako je width, padding, margin nebo background-color si zvolte podle svého gusta, v příkladu nahoře byly popsány pouze vlastnosti nezbytně nutné k docílení rolovacího efektu odspoda nahoru.

Poznámka: Termínem pozicovaný prvek je myšlen prvek, kterému byla přiřazena CSS vlastnost position, ovšem s hodnotou jinou než static. Oba divy v ukázce jsou pozicované – jeden na hodnotu relative a druhý na hodnotu absolute.

Nyní můžeme napsat jQuery kód stejně jako kdybychom chtěli docílit tradičního vysouvacího pohybu.

$(document).ready(function() {
  $('#slidebottom button').click(function() {
    $(this).next().slideToggle();
  });
});

V praxi to vypadá následovně:

vysunutí zespoda

Horizontální posouvání

S animováním vlastnosti width

Elementy můžeme také posouvat doleva nebo doprava. Nejjednodušší cesta směřuje přes upravování hodnoty CSS vlastnosti width.

$(document).ready(function() {
  $('#slidewidth button').click(function() {
    $(this).next().animate({width: 'toggle'});
  });
});

V tomto případě není nezbytné, aby byl posouvaný element pozicovaný.

vysunutí ze strany pomocí width

Určitě jste si v tomto příkladě všimli velmi nepěkných věcí, které dělá text napsaný v divu. Proto si ukážeme ještě jednu metodu rolování, a to s upravováním vlastnoti left.

S animováním vlastnosti left

Další možností, jak docílit srolování objektu doleva, je animování již zmíněné vlastnosti left. Tady už je důležité, aby byl element pozicovaný. Ovšem dávejte pozor, aby pozice nebyla nastavená na hodnotu static, pak se s ním nedá hýbat.

V této animaci je potřeba nejdříve vypočítat, jak daleko budeme objekt posouvat. Následující kód je založen na dvou předpokladech: (1) posouvaný prvek má outerWidth() stejně velký nebo větší, než je šířka divu, do kterého je vložen, a (2) posouvaný prvek má nastaveno left: 0;.

$(document).ready(function() {
  $('#slideleft button').click(function() {
    var $lefty = $(this).next();
    $lefty.animate({
      left: parseInt($lefty.css('left'),10) == 0 ?
        -$lefty.outerWidth() :
        0
    });
  });
});

Řádky 5 až 7 obsahují takzvaný podmínkový operátor. V příkladu to znamená: „Pokud je CSS vlastnost left rovna 0, posuň element doleva o tolik pixelů, kolik je jeho šířka (zahrnuje padding a border) a pokud není, posuň jej zpět na 0."

vysunutí ze strany pomocí left

Pokud chcete, aby byl element úplně skrytý, je potřeba nastavit vnějšímu divu overflow: hidden;.

S animováním vlastnosti margin-left

Poslední věc, kterou si ukážeme, bude stejná animace jako v předchozím příkladě, ale směr pohybu nebude doleva, nýbrž doprava. Zde se stane upravovanou vlastností levý margin posouvaného divu. Zde je stále potřeba nastavit vnějšímu divu overflow: hidden, ale posouvaný div už nemusí být pozicován.

$(document).ready(function() {
  $('#slidemarginleft button').click(function() {
    var $marginLefty = $(this).next();
    $marginLefty.animate({
      marginLeft: parseInt($marginLefty.css('marginLeft'),10) == 0 ?
        $marginLefty.outerWidth() :
        0
    });
  });
});
vysunutí ze strany pomocí margin-left

S trochou tvořivosti a pár úpravami můžete tyto základní horizontální posuvy použít k vytvoření horizontální harmoniky.

Zdroj: http://www.learningjquery.com/2009/02/slide-elements-in-different-directions

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Tagy:
3 názory  —  3 nové  
Hlasování bylo ukončeno    
13 hlasů
Google
(fotka) Tomáš BobekAutor je designérem stránek (2D grafika), ovládá jazyky HTML, CSS, PHP, JavaScript a zajímá se o programování v Javě.Krom programujte.com se podílí na projektech maths.cz (jako redaktor a grafik), ceskewebstudio.cz (jako designér) a webber.cz (jako JavaScript scriptař). Ostatní volný čas rád tráví s přáteli nebo sportuje (tenis, nohejbal, hokejbal, závodně fotbal).
Web     Twitter     Facebook    

Nové články

Obrázek ke článku Nový IT hráč na českém trhu

Nový IT hráč na českém trhu

V roce 2015 otevřela v Praze na Pankráci v budově City Tower své kanceláře společnost EPAM Systems (NYSE:EPAM), jejíž centrála se nachází v USA. Společnost byla založená v roce 1993 a od té doby prošla velkým vývojem a stále roste.

Reklama
Reklama
Obrázek ke článku České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace (CRA) pořádají druhý ročník CRA IoT Hackathonů. Zájemci z řad vývojářů a fanoušků moderních technologií mohou změřit své síly a během jediného dne sestrojit co nejzajímavější funkční prototyp zařízení, které bude komunikovat prostřednictvím sítě LoRa. CRA IoT Hackathony se letos uskuteční ve dvou fázích, na jaře a na podzim, v různých městech České republiky. Jarní běh se odstartuje 31. března v Brně a 7. dubna v Praze.

Obrázek ke článku Cloud computing je využíván stále intenzivněji

Cloud computing je využíván stále intenzivněji

Využívání cloud computingu nabývá na intenzitě. Jen v letošním roce vzroste podle analytiků trh se službami veřejného cloudu o 18 %, přičemž o téměř 37 % vzrostou služby typu IaaS. Růst o více než pětinu pak čeká služby poskytování softwaru formou služby, tedy SaaS. Aktuálním trendům v oblasti využívání cloudu se bude věnovat konference Cloud computing v praxi, která se koná 23. března. 2017 v pražském Kongresovém centru Vavruška na Karlově náměstí 5.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý