jQuery - posouvání elementu v různých směrech
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
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       16 593×

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 Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

Reklama
Reklama
Obrázek ke článku ICT PRO školení zaměřené nejenom na ICT

ICT PRO školení zaměřené nejenom na ICT

Dovolte, abychom se představili. Jsme zaměstnanci společnosti ICT Pro, profesionálové v oblasti poskytování komplexních ICT služeb. Neboli služeb spojených s informačními a komunikačními technologiemi, které dnes - ve 21. století - tvoří  nedílnou součást běžného provozu všech moderních firem.

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 © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý