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

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

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Pergoly a střechy Brno

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

Google       Google       5. 8. 2011       25 683×

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 Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Reklama
Reklama
Obrázek ke článku Konference: Moderní informační systémy podporují automatizaci

Konference: Moderní informační systémy podporují automatizaci

Současná situace v šíření onemocnění Covid-19 klade na řadu firem nové nároky a mnohé z nich jsou nyní více než kdy jindy závislé na nejmodernějších informačních technologiích. Proto i v oblasti podnikových informačních systémů vidíme rostoucí důraz na automatizaci nebo na důslednou integraci. Také o těchto trendech se bude mluvit na konferenci Firemní informační systémy, která se koná 24.9.2020 v pražském Kongresovém centru Vavruška na Karlově náměstí.

Obrázek ke článku Nebezpečí ukrytá v USB: z nuly na škvarek za pět sekund

Nebezpečí ukrytá v USB: z nuly na škvarek za pět sekund

Za cenu šesti dolarů lze celkem bez obtíží koupit nový, líbivě vyhlížející flash disk. Přidaná hodnota, které se vám spolu s ním dostane, už tak moc líbivá není. To, co se před pár sekundami tvářilo jako externí disk, se po připojení k počítači změní v důmyslné elektrické křeslo, které vaše zařízení v onen příslovečný škvarek promění za pár sekund. Cílovou skupinou pro koupi takových zařízení by mohli být záškodníci, kteří by tímto způsobem osnovali pomstu třeba vůči záletnému partnerovi. 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý