Jadi, saya menggunakan kode ini untuk membuka jendela modal lain di jendela modal yang sedang dibuka:
<a onclick=\"$('#login').modal('hide');$('#lost').modal('show');\" href='#'>Click</a>
Apa yang terjadi adalah, bahwa untuk 500ms scrollbar akan menggandakan. Saya kira karena modal saat ini masih memudar. Namun terlihat sangat tidak mulus dan gagap.
Saya sangat menghargai saran untuk mengatasi masalah ini.
Juga, apakah cara membangun ini dalam acara onclick tidak profesional?
Saya bekerja dengan bootstrap versi 3.0.
Sunting: Saya kira itu perlu untuk mengurangi waktu memudar modal. Bagaimana ini mungkin?
Jawaban:
Solusi saya tidak menutup modal yang lebih rendah, tetapi benar-benar menumpuk di atasnya. Ini mempertahankan perilaku pengguliran dengan benar. Diuji di Bootstrap 3. Agar modals dapat menumpuk seperti yang diharapkan, Anda harus mengaturnya dalam markup Html dari yang terendah ke tertinggi.
UPDATE: Ketika Anda telah menumpuk modal, semua latar belakang muncul di bawah modal paling bawah. Anda dapat memperbaikinya dengan menambahkan CSS berikut:
Ini akan memberikan tampilan latar belakang modal di bawah modal yang terlihat paling atas. Dengan cara itu, mode bawah Anda menjadi abu-abu.
sumber
data-dismiss
menutup paksa jendela modal saat inidata-toggle
membuka modal baru denganhref
konten di dalamnyaatau
beri tahu kami jika berhasil.
sumber
data-dismiss
dilakukannya. Ini menutup jendela saat ini dan membuka yang baru. Dapatkah Anda memposting kode Anda dibootply
ataujsfiddle
?.modal { overflow-y: auto }
memecahkan masalah pengguliran BS4.Untuk membuka jendela modal lain di jendela modal yang sedang dibuka,
Anda dapat menggunakan bootstrap-modal
bootstrap-modal DEMO
sumber
coba ini
sumber
Anda sebenarnya dapat mendeteksi ketika modal lama ditutup dengan memanggil
hidden.bs.modal
acara:Untuk info lebih lanjut: http://getbootstrap.com/javascript/#modals-events
sumber
Pembaruan untuk 2018 - Menggunakan Bootstrap 4
Saya menemukan sebagian besar jawaban tampaknya memiliki banyak jQuery yang tidak perlu. Untuk membuka modal dari modal lain dapat dilakukan hanya dengan menggunakan event yang disediakan Bootstrap seperti
show.bs.modal
. Anda mungkin juga menginginkan beberapa CSS untuk menangani hamparan tampilan latar. Berikut adalah 3 modal terbuka dari skenario lain ...Buka modal dari modal lain (biarkan modal pertama tetap terbuka)
Masalah potensial dalam kasus ini adalah bahwa latar belakang dari modal ke-2 menyembunyikan modal pertama. Untuk mencegahnya, buat modal ke-2
data-backdrop="static"
, dan tambahkan beberapa CSS untuk memperbaiki indeks-z dari latar belakang ...https://www.codeply.com/go/NiFzSCukVl
Buka modal dari modal lain (tutup modal pertama)
Ini mirip dengan skenario di atas, tetapi karena kita menutup modal pertama saat modal kedua dibuka, tidak diperlukan perbaikan CSS latar belakang. Fungsi sederhana yang menangani modal ke-2
show.bs.modal
event menutup modal pertama.https://www.codeply.com/go/ejaUJ4YANz
Buka modal di dalam modal lain
Skenario beberapa modal terakhir adalah membuka modal ke-2 di dalam modal pertama. Dalam hal ini markup untuk yang ke-2 ditempatkan di dalam yang ke-1. Tidak diperlukan CSS atau jQuery tambahan.
https://www.codeply.com/go/iSbjqubiyn
sumber
.modal-backdrop.show + .modal.show { z-index: 1052 !important; } .modal-backdrop.show + .modal.show + .modal-backdrop.show { z-index: 1051 !important; }
Modal dalam Modal:
sumber
Bekerja pada proyek yang memiliki banyak modals memanggil modals lain dan beberapa orang HTML yang mungkin tidak tahu untuk memulainya setiap saat untuk setiap tombol. Sampai pada kesimpulan yang mirip dengan @gmaggio, dengan enggan setelah pergi jauh dulu.
EDIT: Sekarang mendukung modals yang dipanggil melalui javascript.
EDIT: Membuka modal gulir dari modal lain sekarang berfungsi.
Letakkan saja tombol panggilan modal seperti biasa, dan jika diambil untuk berada di dalam modal, itu akan menutup yang sekarang terlebih dahulu sebelum membuka yang ditentukan dalam data-target. Catatan yang
relatedTarget
disediakan oleh Bootstrap.Saya juga menambahkan yang berikut ini untuk sedikit memperhalus pemudaran: Saya yakin lebih banyak yang bisa dilakukan.
sumber
Dokumen Twitter mengatakan kode khusus diperlukan ...
Ini berfungsi tanpa JavaScript tambahan, namun, CSS khusus akan sangat disarankan ...
sumber
z-index: 1080 !important;
Untuk bootstrap 4, untuk memperluas jawaban @ helloroy, saya menggunakan yang berikut; -
Keuntungan di atas adalah bahwa itu tidak akan berpengaruh ketika hanya ada satu modal, itu hanya berlaku untuk kelipatan. Kedua, mendelegasikan penanganan ke badan untuk memastikan modal masa depan yang tidak dihasilkan saat ini masih dapat dipenuhi.
Memperbarui
Pindah ke solusi gabungan js / css meningkatkan tampilan - animasi pudar terus bekerja di latar belakang; -
dikombinasikan dengan css berikut; -
Ini akan menangani modal bersarang hingga 4 kedalaman yang lebih dari yang saya butuhkan.
sumber
Coba ini:
Peretasan sederhana ini berhasil untuk saya.
sumber
Untuk seseorang yang menggunakan bootstrap 4 https://jsfiddle.net/helloroy/tmm9juoh/
sumber
Saya juga mengalami masalah dengan modals yang dapat digulir, jadi saya melakukan sesuatu seperti ini:
Ini akan berfungsi untuk modal apa pun yang ada dalam modal yang muncul. Perhatikan bahwa yang pertama ditutup sehingga yang kedua dapat muncul. Tidak ada perubahan dalam struktur Bootstrap.
sumber
Aku pergi ke rute yang berbeda bersama-sama, aku memutuskan untuk "De-Nest" mereka. Mungkin seseorang akan menganggap ini berguna ...
sumber
Kode saya berfungsi dengan baik menggunakan pemecatan data.
sumber
Tutup modal Bootstrap pertama dan buka modal baru secara dinamis.
sumber
Mengapa tidak hanya mengubah konten badan modal?
Di modal, cukup letakkan tautan atau tombol
Jika Anda hanya ingin beralih di antara 2 modals:
Di modal, cukup letakkan tautan atau tombol
sumber
coba ini:
sumber
Jawaban yang diberikan oleh H Dog bagus, tetapi pendekatan ini sebenarnya memberi saya beberapa flicker modal di Internet Explorer 11. Bootstrap pertama-tama akan menyembunyikan modal yang menghapus kelas 'modal-open', dan kemudian (menggunakan solusi H Dogs) kami menambahkan kelas 'modal-open' lagi. Saya menduga ini entah bagaimana menyebabkan flicker yang saya lihat, mungkin karena rendering HTML / CSS yang lambat.
Solusi lain adalah mencegah bootstrap dalam menghapus kelas 'modal-open' dari elemen tubuh di tempat pertama. Menggunakan Bootstrap 3.3.7, penggantian fungsi internal hideModal ini bekerja dengan sempurna untuk saya.
Dalam penggantian ini, kelas 'modal-open' hanya dihapus jika tidak ada modals yang terlihat di layar. Dan Anda mencegah satu frame menghapus dan menambahkan kelas ke elemen body.
Cukup sertakan override setelah bootstrap dimuat.
sumber
sumber