Pokud dnes někdo řeší tvorbu webových stránek na WordPressu, velmi rychle narazí na otázku: Elementor nebo Bricks Builder? Na první pohled jde …
Pokud dnes někdo řeší tvorbu webových stránek na WordPressu, velmi rychle narazí na otázku: Elementor nebo Bricks Builder? Na první pohled jde …
Možná to znáte. Necháte si vytvořit nový web, všechno funguje, design ladí, texty dávají smysl a vy máte dobrý pocit, že je …
Chcete si vytvořit vlastní web, blog nebo firemní stránky a nechcete být závislí na programátorovi? Kurz WordPress je ideální cestou, jak získat …
Pokud patříte k těm uživatelům, kteří si oblíbili Gutenberg editor, který WordPress do svého systému zařadil ve verzi 5.0, tj. v roce …
Nezavírá se automaticky widget Off -Canvas po kliknutí na menu? Řešení není až tak těžké, stačí vložit jednoduchý Javascirpt do vašeho Elenentoru.
Mohlo by vás zajímat

V tomto článku se nebudeme věnovat základnímu nastavení menu (návodů na na použití Off-Canvas je spousta), ale zaměříme se na jednu drobnou chybu, na kterou jsem narazila při tvorbě webů pro své klienty.
Jedná se o URL odkaz, kdy stránka odkazuje na daný obsah v rámci jedné stránky, tj. stránka nemá vytvořenou vlastní stránku. Kotva má typicku podobu: https://www.urlvasistranky.cz/#kontakt. Pokud jste tento odkaz použili v responzivním režimu, stránka se sice posunula na správnou sekci, ale vysouvací menu zůstalo otevřené, což pro klienta určitě není příjemné.
Chvíli mi trvalo, než jsem našla řešení, ale nakonec je to celkem jednoduché. Pokud byste chtěli tedy použít menu s kotvou pomocí Off-Canvas (funguje pěkně i v případě, že kotva v menu není), pak stačí, abyste v nabídce Elementor – Custom Code – vytvořily nový kód a vložit do něj jednoduchý JavaScript. Důležité je nastavit Location na Location nastavte na </body> End. (Alternativou je také možnost vložení JavaScript kodu pomocí HTML widgetu ve vašem bloku s menu.)
a vložte následující JavaScript kód:
<script>
document.addEventListener('click', function (event) {
if (event.target.closest('a[href*="#"]:not([aria-haspopup="true"])') && event.target.closest('.e-off-canvas[aria-hidden="false"]')) {
const canvasTriggers = document.querySelectorAll('[href*="canvas"][aria-expanded="true"]:not([href*="%3Aopen"]');
canvasTriggers.forEach(canvasTrigger => canvasTrigger.click());
}
});
</script>