动态调整引导程序中的模式对话框的大小

jay*_*hkv 8 javascript css modal-dialog twitter-bootstrap-3

我有一个模态弹出窗口(Bootstrap),它根据用户选择显示内容

这是我用来检查用户选择的javascript代码

PlayerMP.getFunctionalDetails = function (type, UserID, SessionID, SessionNo) {
$.ajax({
    type: "GET",
    url: PlayerMP.URL,
    data: "rt=4&type=" + type + "&UserID=" + UserID + "&SessionID=" + SessionID + "&SessionNo=" + SessionNo,
    success: function (FunctionalSplitsJS) {
        if (FunctionalSplitsJS.indexOf("SessionExpired=1", 0) == -1) {

            $("#divFunctionalDetails").html(FunctionalSplitsJS);
            switch (type) {
                case 1:
                    $("#divFunctionalsSplit");      //the table goes out of the modal window                           
                     break;
                case 2:
                    TallyFunctionalSheet();
                    $("#divFunctionalsSplit"); 
                    break;
                case 3:
                    $("#divFunctionalsSplit"); 
                    break;
            }                

             $("#divFunctionalsSplit").modal('show');
        }
        else
            window.location.href = "../Login.aspx?SessionExpired=1";
    }
});
}
Run Code Online (Sandbox Code Playgroud)
  • 第一种情况有一个表应该显示在模态弹出窗口内但是表格在模态窗口之外(模态窗口的宽度有问题,但table-responsive似乎工作)但是当我调整浏览器的大小时匹配平板电脑的宽度表/模态自动调整大小以匹配彼此.
  • 模态的第2和第3个案例的宽度似乎工作正常.

这是被调用的模态窗口的代码

 <div class="modal fade" id="divFunctionalsSplit" tabindex="-1" role="dialog" aria-hidden="true">  
        <div class="modal-dialog">
            <div class="modal-content"> 
                  <div class="modal-body">
                    <div class="table-responsive">
                        <div id="divFunctionalDetails"></div>
                      </div>
                   </div>
                   <div class="modal-footer">
                   <button type="button" class="btn btn-primary" data-dismiss="modal">Done</button>
                   </div>
            </div>
        </div>
 </div>
Run Code Online (Sandbox Code Playgroud)
  • 全屏浏览器 全屏图片
  • 调整大小的浏览器 调整大小的图像

Bas*_*sen 23

默认情况下,boottrap将.modal对话框的宽度设置为600px(大屏幕高于768像素)或自动(小屏幕).下面的代码覆盖了这个:

$('#myModal').on('shown.bs.modal', function () {
    $(this).find('.modal-dialog').css({width:'auto',
                               height:'auto', 
                              'max-height':'100%'});
});
Run Code Online (Sandbox Code Playgroud)

(基于:https://stackoverflow.com/a/16152629/2260496)

为了使其更加动态,您需要计算表的宽度(jQuery width()或innerwidth())并根据它设置模态对话框的宽度.

请参阅:http://bootply.com/88364

  • 这正是我所使用的,它仍然无法正常工作. (5认同)

Ami*_*hah 14

这至少对我有用:

.modal-dialog{
    position: relative;
    display: table; /* <-- This makes the trick */
    overflow-y: auto;    
    overflow-x: auto;
    width: auto;
    min-width: 300px;   
}
Run Code Online (Sandbox Code Playgroud)