Apabila meletakkan modal Bootstrap 5.3 di dalam bekas selain badan,
Kod sumber Tirai Latar mempunyai bahagian ini:
const Default = { className: 'modal-backdrop', clickCallback: null, isAnimated: false, isVisible: true, // if false, we use the backdrop helper without adding any element to the dom rootElement: 'body' // give the choice to place backdrop under different elements }
Walau bagaimanapun tiada mekanisme disediakan untuk menyesuaikan rootElement
_configAfterMerge(config) { // use getElement() with the default "body" to get a fresh Element on each instantiation config.rootElement = getElement(config.rootElement) || document.body; return config; }
_initializeBackDrop() { return new Backdrop({ isVisible: Boolean(this._config.backdrop), // 'static' option will be translated to true, and booleans will keep their value, isAnimated: this._isAnimated(), rootElement: this._config.rootElement }); }
Apabila memulakan bootstrap anda dengan bootstrap baharu tambahkan rootElement:
const myModal = new bootstrap.Modal( document.getElementById('myModal') , { backdrop: "static", rootElement: '#your-div' } ) myModal.show()
Ini adalah penggunaan saya di SPA.
// Saya mempunyai modal dinamik dalam SPA saya, jadi saya memberikan modal // di dalam DocumentFragment dahulu dan simpan objek modal ini // dalam pembolehubah supaya saya boleh memanggil kaedah modal selepas, seperti close() const NILAI = { modal: { id: 'modal saya', obj: null } } pecahan const = document.createRange().createContextualFragment( `<div>
Atas ialah kandungan terperinci Betulkan Bootstrap modals rootElement. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!