光年模板(V5)说明文档
主题
字号
18px

模态框最大化

这里旨在对模态框增加最大化的功能(因为是模态框的原因,在保留模态框的一些样式基础上做最大化处理)。css和绑定事件的js可以放到通用的文件当中,模态框新增最大化按钮即可。

<div class="modal fade" id="myModal">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h6 class="modal-title" id="myModalLabel">标题</h6>
        <div class="float-end">
          <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
          <button type="button" class="modal-fullscreen-btn"><i class="mdi"></i></button>
        </div>
      </div>
      <div class="modal-body">
      内容
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
        <button type="button" class="btn btn-primary">保存</button>
      </div>
    </div>
  </div>
</div>

新增样式:

.modal-fullscreen-btn {
    border: none;
    background-color: transparent;
    color: #000;
    opacity: 0.6;
    font-size: 22px;
    line-height: 1.3;
    font-weight: 700;
    margin: -0.5rem -0.5rem -0.5rem auto;
}
.modal-fullscreen-btn .mdi:before {
    width: 1.5rem;
    height: 1.5rem;
    vertical-align: middle;
    content: "\f0293";
    line-height: 1;
}
.modal-fullscreen-btn:hover {
    opacity: .8;
}
.modal-fullscreen {
    padding-left: 0px!important;
}
.modal-fullscreen .modal-fullscreen-btn {
    opacity: .95;
}
.modal-fullscreen .modal-fullscreen-btn .mdi:before {
    content: "\f0294";
}
.modal-fullscreen .modal-dialog {
    width: -webkit-calc(100% - 20px);
    width: calc(100% - 20px);
    max-width: calc(100% - 20px);
    margin: 8px auto;
}
.modal-fullscreen .modal-dialog .modal-body {
    height: -webkit-calc(100vh - 56px - 69px - 20px);
    height: calc(100vh - 56px - 69px - 20px);
    overflow-y: auto;
}

新增js:

$(document).ready(function() {
    $(document).on('click', '.modal-fullscreen-btn', function(){
        $(this).closest('.modal').toggleClass('modal-fullscreen');
    });
});

因为这里做演示用,所以用了 $(document).ready(function(){});,如果放到 main.min.js 里面的时候,去掉这一层,把里面的 click 事件绑定放进去。

;jQuery( function() {
    // 内容放到这里
});

插件项目中页面名字:lyear_layout_modal_maximize.html

演示地址:http://lyear.itshubao.com/v5/example/