bootstrap在一個模態框上彈出另一個模態框遮罩層問題
阿新 • • 發佈:2018-12-06
bootstrap3官網明確指出
千萬不要在一個模態框上重疊另一個模態框。要想同時支援多個模態框,需要自己寫額外的程式碼來實現。
bootstrap3相關原始碼分析
開發過程中經常會遇到在一個模態框上彈出另一個模態框,
bootstrap.css中 模態框的z-index為1050
遮罩層z-index為1040.modal { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1050; display: none; overflow: hidden; -webkit-overflow-scrolling: touch; outline: 0; }
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
background-color: #000;
}
分析之後的解決方案
那麼要想再新增模態框的遮罩層覆蓋上一個的模態框,那麼這時的遮罩層的z-index必須大於上一個模態框的z-index,並且新的模態框的z-index也必須改變;所以:注意:此種方式的必須注意一點的是 新彈出的模態框div必須在上一個模態框div的後面var modalLen = $(".modal-backdrop").length, zIndex = $(".modal-backdrop").eq(0).css("z-index"); for(var i = 1; i < modalLen; i ++){ $(".modal-backdrop").eq(i).css({ "z-index": zIndex + i * 10 + 1 }); $(".modal.in").eq(i).css({ "z-index": zIndex + (i + 1) * 10 + 1 }); }
把上面的程式碼放在 bootstrap.js這句程式碼的前面
var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })