Bagi Anda yang suka menelusuri artikel-artikel serpihan arahan di sini mungkin pernah sekali dua kali melihat halaman ini » Tambahkan State Aktif untuk jQuery Accordion. Kali ini Saya akan membantu Anda untuk mengerti lebih dalam perihal salah satu manfaat besar dari potongan arahan tersebut.
Pernahkan Anda memperhatikan sidebar blog Anda dan menyadari bahwa susunan elemen yang ada pada sidebar tersebut bahwasanya sama persis dengan kerangka akordion yang pernah Anda lihat di halaman tersebut?
Mari kita coba mengambil sudut pandang ini:
Setiap sidebar biasanya dibungkus oleh elemen #sidebar-wrapper
dimana di dalamnya terdapat beberapa widget yang selalu terdiri dari elemen <h2>
dan elemen badan widget itu sendiri menyerupai ini:
<div id='sidebar-wrapper'> <h2>Blogger templates</h2> <div class='widget-content'> .... </div> <h2>Blogroll</h2> <div class='widget-content'> .... </div> <h2>Labels</h2> <div class='widget-content'> .... </div> </div>
Jika Anda teliti dengan baik, ternyata model kerangka di atas sama persis dengan kerangka yang ada pada percobaan jQuery akordion yang pernah Saya tuliskan:
<div id='accordion'> <h2>Panel 1</h2> <div class='content'> .... </div> <h2>Panel 2</h2> <div class='content'> .... </div> <h2>Panel 3</h2> <div class='content'> .... </div> </div>
Itulah kesempatan Anda untuk menjadi kreatif hari ini. Kali ini kita akan membuat sidebar dengan efek akordion hanya dengan bermodalkan inspirasi tersebut. Pertama-tama, tentunya harus kita ketahui beberapa elemen yang sama sebagai pemandu dan itu akan kita gunakan untuk memodifikasi serpihan arahan efek akordion ini:
$(function() { $('#accordion .content').hide(); $('#accordion h2:first').addClass('active').next().slideDown('slow'); $('#accordion h2').click(function() { if($(this).next().is(':hidden')) { $('#accordion h2').removeClass('active').next().slideUp('slow'); $(this).toggleClass('active').next().slideDown('slow'); } }); });
Sebagai contoh, elemen #accordion
mempunyai tugas yang sama persis dengan elemen #sidebar-wrapper
dan elemen .content
juga mempunyai tugas yang sama dengan elemen .widget-content
. Elemen h2
tidak perlu dipertanyakan lagi. Kesimpulannya adalah, untuk membuat sidebar akordion setidaknya kita harus memodifikasi arahan di atas menjadi menyerupai ini:
$(function() { $('#sidebar-wrapper .widget-content').hide(); $('#sidebar-wrapper h2:first').addClass('active').next().slideDown('slow'); $('#sidebar-wrapper h2').click(function() { if($(this).next().is(':hidden')) { $('#sidebar-wrapper h2').removeClass('active').next().slideUp('slow'); $(this).toggleClass('active').next().slideDown('slow'); } }); });
Ya, cuma begitu saja modal dasar untuk membuat efek akordion pada sidebar. Asalkan kita sudah menemukan ID sidebar yang ingin kita jadikan sebagai target, maka sisanya tinggal melaksanakan beberapa modifikasi kecil saja.
Langkah-Langkah Membuat Sidebar Akordion
Pertama-tama masuklah ke halaman editor HTML tema Anda, kemudian temukan arahan ini:
</head>
Salin arahan di bawah ini dan letakkan di atasnya:
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script><script> //<![CDATA[ $(function() { // Sembunyikan semua badan widget (tutup semua panel) $('#sidebar-wrapper .widget-content').hide(); // Tambahkan class 'active' pada elemen <h2> pertama // kemudian tampilkan elemen berikutnya dengan efek .slideDown(), sehingga panel akordion paling atas akan tampak terbuka $('#sidebar-wrapper h2:first').addClass('active').next().slideDown('slow'); // Saat elemen <h2> yang berada di dalam elemen #sidebar-wrapper diklik... $('#sidebar-wrapper h2').click(function() { if($(this).next().is(':hidden')) { // Sembunyikan semua panel yang terbuka dengan efek .slideUp() $('#sidebar-wrapper h2').removeClass('active').next().slideUp('slow'); // Lalu buka panel yang berada di bawah elemen ini (elemen <h2> yang diklik) dengan efek .slideDown() $(this).toggleClass('active').next().slideDown('slow'); } }); }); //]]> </script>
Kode yang Saya beri garis bawah yaitu jQuery. Jika tema Anda sudah dilengkapi dengan jQuery, singkirkan arahan tersebut. Sekarang coba simpan tema Anda dan lihat apa yang terjadi pada sidebar blog Anda...
Tidak berhasil?
Oke, mungkin Anda mempunyai sidebar dengan ID yang berbeda. Coba periksa kembali tema Anda dan temukan baris arahan yang menggambarkan formasi widget sidebar blog Anda. Kurang lebih tampilannya menyerupai ini:
<div id='sidebar-wrapper-2'> <b:section class='sidebar' id='sidebar' preferred='yes'> <b:widget id='Label1' locked='false' title='Kategori' type='Label'/> <b:widget id='PopularPosts1' locked='false' title='Entri Populer' type='PopularPosts'/> <b:widget id='Stats1' locked='false' title='Statistik' type='Stats'/> <b:widget id='HTML2' locked='false' title='Komunitas' type='HTML'/> <b:widget id='HTML4' locked='false' title='Facebook Suka' type='HTML'/> </b:section> </div>
Atau Anda juga sanggup melihat ID sidebar secara pribadi dari halaman blog Anda melalui Add-on Firebug atau aplikasi web developer sejenis lainnya:
Nah, Anda sanggup mengganti arahan #sidebar-wrapper
dengan ID yang Saya beri garis bawah untuk membuat efek akordion pada sidebar tersebut.
Satu pelengkap lagi: Saat Anda mencoba menyentuh judul widget biasanya akan terasa sesuatu yang sedikit mengganjal. Ya, kursornya masih berupa kursor teks. Itu akan membuat elemen pemicu akordion tersebut menjadi tampak sebagai sesuatu yang tidak penting/tidak mempunyai sesuatu yang penting (alah!). Kita harus mengubah pointer teksnya menjadi pointer jari telunjuk menyerupai halnya pointer standar yang selalu muncul pada semua link.
Ada dua cara untuk mengubah pointer teks pada elemen <h2>
menjadi pointer telunjuk. Pertama, dengan cara menuliskannya secara pribadi pada arahan CSS menyerupai ini:
#sidebar-wrapper h2 { cursor:pointer; }
Atau cukup sisipkan fungsi jQuery .css()
di depan selektor yang mengarah kepada elemen h2
menyerupai ini:
$(function() { $('#sidebar-wrapper .widget-content').hide(); $('#sidebar-wrapper h2:first').addClass('active').next().slideDown('slow'); $('#sidebar-wrapper h2').css('cursor', 'pointer').click(function() { if($(this).next().is(':hidden')) { $('#sidebar-wrapper h2').removeClass('active').next().slideUp('slow'); $(this).toggleClass('active').next().slideDown('slow'); } }); });
Mengenai fungsi .addClass('active')
, .removeClass('active')
dan .toggleClass('active')
itu semua hanya untuk menandai panel akordion yang sedang aktif/terbuka. Katakanlah kita ingin membuat elemen <h2>
yang sedang aktif berubah warna menjadi merah, maka dalam arahan CSS Anda tinggal menambahkan selektor #sidebar-wrapper h2.active
dan memberinya warna merah menyerupai ini:
#sidebar-wrapper h2.active {color:red;}
Info Tema
BleachTema author: NBTemplate |