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">&times;</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开发框架网发布内容,转载请附上原文出处连接
管理员
上一篇:JQuery将form表单转换为json,并提交后台处理
下一篇:CodeMirror行号和内容重叠了
评论列表

发表评论

评论内容
昵称:
关联文章

BootstrapModal添加鼠标拖动支持
Bootstrap 弹窗JS组件封装
C# Winform 控件Menustrip中ToolStripMenuItem显示提示ToolTipText
CSS鼠标hover 背景动画煽动效果
.NET下如何拦截鼠标、键盘消息?Win32NET来帮你
VS2022添加支持.Net Framwork4.0的方法
VUE Cli3项目添加LESS支持
textbox支持拖拽路径/文件
winform项目提醒扩展类库 MessageBoxHelper
Devexpress GridControl表格无法鼠标滚轮上下滚动
Devexpress GridControl GridView添加右键菜单
jQuery.cropper中文API详解
页面快排插件配置支持图片上传
JOC快速开发平台添加了水印设置
添加公共字典
.Net 6 添加NLog
TinyMCE 支持的图标列表
Devexpress XtraTabbedMdiManager添加右键关闭菜单 (关闭当前页、关闭其它页、所有关闭)
winform使用webBrowser,C#直接调用js函数,并且支持array数组
TinyMCE富文本编辑器 autoLink 插件配置,全角支持

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码