Rozšíření klikací plochy u Divi Přepínače (Toggle)

Dub 5, 2020 | Wordpress, Divi

Modul Přepínač, neboli Toggle (pokud raději používáte angličtinu) je vhodný k použití na sekce typu Otázky a odpovědi (FAQ). Nedávno jsem jednu takovou sekci dělal a jako připomínka mi dorazilo, že klikatelná oblast je malá a aby člověk rozbalil/zabalil tuto oblast, tak se musí trefovat.

Začal jsem tedy zkoumat jak to doopravdy je a funguje. Celý přepínač je tvořen jako DIV element v němž je text v tagu H5 a jen tato relativně malá oblast je klikatelná. Navíc když přepínač rozbalíte, sbalit ho musíte opět kliknutím na oblast titulku.

Vlastní javascript + CSS

Celá úprava probíhá pomocí vlastního javascriptu, který se nám bude starat o odchytávání události kliknutí na modul a animaci rozbalení/zabalení. Pomocí CSS pak upravíme ukazatel myši aby uživatel věděl kde může kliknout (změníme šipku na ručičku).

Nejprve si ale modul označíme pomocí CSS třídy. Klikneme na nastavení modulu, zvolíme PokročiléID a třídy CSS. Třídu si pojmenujeme třeba toggle_informace.

Pojmenování prvku pomocí třídy

Poté se již přesuneme do nastavení Divi. Klikneme na Divi – Nastavení šablony – Integrace a do body sekce vložíme následující kód.

<script type="text/javascript">
(function($) {
	 $(".toggle_informace").on('click', function(event){
		 event.stopPropagation();
		 $(this).find('div').slideToggle(800, function() {
                 if($(this).is(":visible")){
			 $(this).parent().removeClass('et_pb_toggle_close');
			 $(this).parent().addClass('et_pb_toggle_open');
		 }else{
			 $(this).parent().removeClass('et_pb_toggle_open');
			 $(this).parent().addClass('et_pb_toggle_close');
		 }
         });		
	 });
})(jQuery);
</script>

Kódem vlastně přepisujeme původní chování a rozšiřujeme klikatelnou oblast na celý náš DIV toggle_informace. Rychlost animace si můžeme přizpůsobit změnou čísla (trvání animace v milisekundách) zde:

$(this).find('div').slideToggle(800, function() {

Nyní ještě přidáme CSS, aby i uživatel věděl kde může klikat. Kamkoliv, kde zadáváme vlastní CSS (třeba do Divi – Nastavení šablony – Všeobecné – Přizpůsobené CSS (úplně vespod) vložíme tento kód:

.toggle_informace{
	cursor: pointer;
}

Tak a to je vše. Ostatní věci si můžeme upravovat dále pomocí Divi builderu.