Bootstrap模态框Modal添加鼠标拖动支持
让Bootstrap模态框支持鼠标点击拖动位置
Bootstrap 鼠标拖动改变Modal位置
并且能够锁定窗口区域,禁止拖动出窗口区域
HTML 全选
<div class="modal fade" id="modal_config_form" data-backdrop="static" data-keyboard="false">
    <div class="modal-dialog" style="width:600px;height:400px;">
        <div class="modal-content" style="height:100%;">
            <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLabel">插件配置</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">×</span>
                </button>
            </div>
            <div class="modal-body gz-layout">
                <div class="gz-layout-item" style="overflow:auto;">
                    <div id="configFormContain"></div>
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>
                <button class="btn btn-primary" id="btn_SaveConfig">确定</button>
            </div>
        </div>
    </div>
</div>JavaScript 全选
 $(document).on("show.bs.modal", ".modal", function () {
    $('.modal-dialog').draggable({
        connectToSortable: ".modal.fade",
        drag:function(event,ui){
            // 最大横坐标
            var _x_max=window.innerWidth-ui.helper.width()-parseInt(ui.helper.css("margin-left"))
            // 最大纵坐标
            var _y_max =window.innerHeight-ui.helper.height()-parseInt(ui.helper.css("margin-top"));
            // 最小横坐标
            var _x_min=parseInt(ui.helper.css("margin-left"))*-1
            // 最小纵坐标
            var _y_min = parseInt(ui.helper.css("margin-top"))*-1
            if(ui.offset.left<_x_min){
                ui.offset.left=_x_min;
                ui.position.left=_x_min;
            }
            if(ui.offset.top<_y_min){
                ui.offset.top=_y_min;
                ui.position.top=_y_min;
            }
            if(ui.offset.top>_y_max){
                ui.offset.top=_y_max;
                ui.position.top=_y_max;
            }
            if(ui.offset.left>_x_max){
                ui.offset.left=_x_max;
                ui.position.left=_x_max;
            }
        }
    });
    $(this).css("overflow", "hidden");
    // 不拖动透明背景
});需要配合 Jquery-ui
Markup 全选
<script src="~/lib/jquery-ui-1.13.0/jquery-ui.min.js"></script>
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
post 管理员  
 
 

