Menggunakan contoh inti yang diambil dari halaman contoh Javascript Bootstrap 3 untuk Ciutkan , saya telah dapat menunjukkan keadaan runtuhnya menggunakan ikon chevron.
Saya memiliki ini berfungsi menggunakan:
$('#accordion .accordion-toggle').click(function (e) {
var chevState = $(e.target).siblings("i.indicator").toggleClass('glyphicon-chevron-down glyphicon-chevron-up');
$("i.indicator").not(chevState).removeClass("glyphicon-chevron-down").addClass("glyphicon-chevron-up");
});
Ini berfungsi (tidak sepenuhnya diuji di semua browser), tapi saya ingin tahu apakah ada solusi yang lebih elegan untuk ini?
Idealnya saya ingin menggunakan fungsi inti, tapi saya tidak yakin bagaimana mencapai hasil yang sama dengannya.
$('#accordion').on('hidden.bs.collapse', function () {
//do something...
})
Berikut adalah versi yang berfungsi di jsfiddle .
jquery
css
twitter-bootstrap
twitter-bootstrap-3
Ryan Scott
sumber
sumber
Jawaban:
Untuk HTML berikut (dari contoh Bootstrap 3 ):
Efek visual:
sumber
Anda dapat menggunakan kode semacam ini:
=> Bekerja JsFiddle
sumber
$('#accordion').on('hidden.bs.collapse shown.bs.collapse', toggleChevron);
$('#accordion').on('hide.bs.collapse show.bs.collapse', toggleChevron);
sebagai gantinyaUntuk meningkatkan jawaban dengan paling banyak upticks, beberapa dari Anda mungkin telah memperhatikan pada beban awal halaman bahwa chevron semuanya menunjuk ke arah yang sama. Ini dikoreksi dengan menambahkan kelas "collapsed" ke elemen yang Anda ingin memuat collapsed.
Berikut adalah biola yang berfungsi: http://jsfiddle.net/3gYa3/585/
sumber
Peningkatan pada jawaban Bludream:
Anda pasti bisa menggunakan FontAwesome!
Pastikan untuk menyertakan "collapsed" bersama dengan kelas "heading panel". Kelas "diciutkan" tidak termasuk sampai Anda mengklik pada panel sehingga Anda ingin menyertakan kelas "diciutkan" untuk menampilkan chevron yang benar (yaitu, chevron-kanan ditampilkan ketika diciutkan dan chevron-turun saat terbuka).
HTML
CSS
Juga, itu adalah praktik yang baik untuk membuat kelas baru alih-alih menggunakan kelas yang ada.
Lihat Codepen misalnya: http://codepen.io/anon/pen/PPxOJX
sumber
Terima kasih untuk biggates dan steakpi. Sebagai jawaban dari pertanyaan Dreamonic, saya membuat sedikit perubahan untuk membuat semua header dapat diklik (tidak hanya judul string dan gluph) dan melepas garis bawah dari tautan. Untuk memaksa ikon muncul di baris yang sama, saya menambahkan h4 di akhir instruksi CSS. Berikut adalah kode yang dimodifikasi:
Dan CSS yang dimodifikasi:
sumber
Berikut adalah beberapa kelas pembantu css murni yang memungkinkan Anda menangani segala jenis konten toggle langsung di html Anda.
Ini bekerja dengan elemen apa pun yang Anda butuhkan untuk beralih. Apa pun tata letak Anda, Anda cukup meletakkannya di dalam beberapa elemen dengan kelas .if-collapsed dan .if-not-collapsed di dalam elemen toggle.
Satu-satunya tangkapan adalah bahwa Anda harus memastikan Anda memasukkan keadaan awal yang diinginkan dari beralih. Jika awalnya ditutup, maka letakkan kelas yang runtuh di sakelar.
Ini juga memerlukan : tidak pemilih, itu tidak berfungsi di IE8.
Contoh HTML:
Versi kurang:
Versi CSS:
sumber
Saya tahu ini sudah lama tetapi karena sekarang tahun 2018, saya pikir saya akan menjawab membuatnya lebih baik dengan menyederhanakan kode dan meningkatkan pengalaman pengguna dengan membuat chevron rotate berdasarkan collapsed atau tidak. Saya menggunakan FontAwesome. Inilah CSS-nya:
Inilah HTML untuk bagian panel:
Saya menggunakan bootstraps pull-right untuk menarik chevron hingga ke kanan heading panel yang harus lebar penuh dan responsif. CSS mengerjakan semua pekerjaan animasi dan memutar chevron berdasarkan apakah panelnya runtuh atau tidak. Sederhana.
sumber
contoh sederhana bekerja
masukkan sederhana
HTML :
JavaScript
sumber
atau ... Anda bisa menaruh beberapa gaya seperti ini.
http://codepen.io/anon/pen/GJjrQN
sumber
Saya menggunakan font yang luar biasa ! dan ingin panel dilipat
dan css
sumber
Sudut tampaknya menyebabkan masalah dengan pendekatan berbasis JavaScript di sini (setidaknya yang saya coba). Saya menemukan solusi ini di sini: http://www.codeproject.com/Articles/987311/Collapsible-Responsive-Master-Child-Grid-Using-Ang . Inti dari itu adalah untuk digunakan
data-ng-click
pada tombol sakelar dan buat metode untuk mengubah tombol pada pengontrol menggunakan$scope
konteks.Saya kira saya bisa memberikan lebih detail ... tombol saya diatur ke glyphicon dari keadaan awal div mereka runtuh (glyphicon-chevron-right == collapsed div).
page.html:
controllers.js:
sumber
Satu garis.
Dalam contoh ini digunakan untuk mengelompokkan baris tabel yang dapat dilipat. Satu-satunya hal yang perlu Anda lakukan adalah menambahkan nama kelas target (my-collapse-name) ke ikon Anda:
Anda dapat mencapai hal yang sama dengan kelas caret asli Bootstrap dengan menggunakan
<span class='caret my-collapse-name'></span>
danspan.caret.collapse.in { transform: rotate(90deg); }
sumber
Jika Anda mencoba menggunakan ini hanya dengan panel (bukan akordeon), coba kode ini:
sumber
Saya ingin pendekatan html murni karena saya ingin menutup dan memperluas html yang ditambahkan dengan cepat melalui template! Saya datang dengan ini ...
https://jsfiddle.net/3mguht2y/1/
Yang mungkin berguna bagi seseorang :)
sumber