Floating block: plovoucí bloky pro Drupal snadno a rychle

Plovoucí bloky jste jistě na webu viděli. Rolujete stránku a nějaká její část, reklama či odkazy na sociální sítě, zůstává stále viditelná ve svém sloupci, ať stránku posunujete jak chcete. Neumíte-li tohoto v Drupalu docílit pomocí JavaScriptu, zkuste jednoduchý modul Floating block.

Když jsem kdysi poprvé dostal požadavek na web, ve kterém měly být plovoucí bloky zakomponovány, tak jsem trošku váhal, zda to dovedu. Tehdy jsem se s JavaScriptem a jQuery spíše seznamoval, než abych měl za sebou nějaký konkrétní projekt (tím chci říct, že znalost JavaScriptu není o zobrazování hlášek alert nebo změnách barvy prvků HTML).

Velice brzy jsem ale zjistil, že vytvoření plovoucího bloku v Drupalu, který má zabudováno jQuery se svými jednoduchými selektory, není vůbec složité. Pokud to hodně zjednoduším, stačí vybrat konkrétní blok a na rolování okna navěsit událost, která danému HTML elementu dá fixní pozici a vypočítá souřadnice left a top.

Každopádně já si práci rád ulehčím, není-li to na úkor kvality. Nedávno jsem objevil modul Floating block, který v Drupalu funkcionalitu plovoucích bloků zprovozní. Nastavení není pro naprosté začátečníky, ale pokud se v Drupalu a tvorbě šablon alespoň trochu orientujete a jen se vám nechce/neumíte tvořit kód v JavaScriptu, Floating block oceníte.

Plovoucí bloky v Drupalu

Po zapnutí modulu Floating block přejděte do administrační části Konfigurace > Uživatelské rozhraní > Floating block, kde najdete jedno textové pole.  Do něj umístěte hodnotu atributu id nebo class toho prvku na webové stránce, ze kterého chcete udělat plovoucí blok. Nastavení uložte a jste hotovi. Floating block doplňuje JavaScript, který byste jinak museli vytvořit ručně.

Pokud chcete plovoucích prvků na webové stránce více, pak na každý řádek uveďte jeden selektor.

Praktická ukázka plovoucího bloku

Aby to bylo zřejmé, ukážeme si nyní jednoduchý příklad. Použiji pro něj distribuci Drupalu nazvanou OpenPublic, která v bočním panelu zobrazuje blok sloužící jako agregátor příspěvků z Twitteru. Řekněme, že chceme, aby tento blok zůstával při rolování stránky stále na svém místě a byl tak čtenářům neustále na očích.

Přes Firebug, prohlížeč DOM struktury ve Firefoxu a podobné nástroje v Chrome, Internet Exploreru (klávesa F12), Opeře i Safari, si zobrazte DOM strukturu HTML stránky. Tedy klepněte na daný bok pravým tlačítkem myši a zvolte funkci Prozkoumat prvek (nebo podobnou, odpovídající vašemu prohlížeči).

Vyhledejte prvek, který obaluje celý blok, který vás zajímá. Ve vygenerované HTML struktuře Drupalu to bude značka DIV s třídou class=block a nějakými dalšími třídami a identifikátorem. Nás bude zajímat právě ten identifikátor. Když se kouknete na můj příklad, je vidět, že blok s tweety má id=#block-twitter-pull-0.

Zobrazení DOM struktury dokumentu a nalezení požadovaného ID

Do nastavení modulu Floating block tedy stačí zadat právě hodnotu #block-twitter-pull-0 a vytvoření plovoucího bloku je hotovo.

Drupal, OpenPublic a Floating block Drupal, OpenPublic a Floating block Drupal, OpenPublic a Floating block

Ovšem stejně tak můžete jít v HTML struktuře o pár úrovní výše a zjistit, že DIV obalující celý boční sloupec má id=#region-preface-third. Pokud tedy zadáte do nastavení Floating blocku hodnotu #region-preface-third, pak vytvoříte plovoucí celý boční panel a veškerý jeho obsah bude při rolování stránky držet svou pozici.

Jak vidíte, vytvoření plovoucích bloků je v Drupalu s modulem Floating block docela snadné, jen stačí umět koukat na HTML strukturu. Neškodilo by, kdyby v nastavení jednotlivých bloků bylo nějaké zaškrtávací políčko, na druhou stranu ve stávajícím nastavení modulu máte možnost vytvořit plovoucí části z celých regionů nebo prakticky z jakékoli části HTML struktury svého webu.

Tagy

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru