解决bootstrap模态框拖动头部区域,拖出边界,拖不回来

只能点击头部拖动,经常出现下面这种拖动出页面边界后,点不到头部所以无法拖动回来的情况

在这里插入图片描述
在这里插入图片描述
图片凑活着看哈

1.下载并引入jquery-ui插件
2.全局添加模态框允许拖动事件
在调用 show 方法后触发。

    $(document).on("shown.bs.modal", ".modal", function () {
        var dialog = $(this).find(".modal-dialog");
        dialog.draggable({
            handle: ".modal-header",   // 只能点击头部拖动
            cursor: 'move',
            refreshPositions: false,
            scroll: false
        });
        $(this).css("overflow", "hidden"); // 防止出现滚动条,出现的话,你会把滚动条一起拖着走的
    });

3.全局添加关闭模态框事件
当调用 hide 方法时触发。
关闭之后将$(this).find('.modal-content').context上面的style样式去掉,这样就恢复原样了

    $(document).on('hidden.bs.modal', ".modal", function (e) {
       console.log("我关闭了")
        $('.modal-dialog').each(function(i){
            var $clone = $(this).clone().css('display', 'block').appendTo('body');
            $(this).find('.modal-content').context.style[0]=""
            $(this).find('.modal-content').context.style[1]=""
            $(this).find('.modal-content').context.style.cssText=""
            $clone.remove();
        });
    })

总结:
bootstrap modal 的事件:

show.bs.modal:在调用 show 方法后触发。

show.bs.modal:当模态框对用户可见时触发(将等待 CSS 过渡效果完成)。

hide.bs.modal:当调用 hide 方法时触发。

hidden.bs.modal:当模态框完全对用户隐藏时触发。

注意:
这两处是写在公用的方法,并且两个同级,别走弯路了哦

    $(document).on("shown.bs.modal", ".modal", function () {
        var dialog = $(this).find(".modal-dialog");
        dialog.draggable({
            handle: ".modal-header",   // 只能点击头部拖动
            cursor: 'move',
            refreshPositions: false,
            scroll: false
        });
        $(this).css("overflow", "hidden"); // 防止出现滚动条,出现的话,你会把滚动条一起拖着走的
    });
    $(document).on('hidden.bs.modal', ".modal", function (e) {
       console.log("我关闭了")
        $('.modal-dialog').each(function(i){
            var $clone = $(this).clone().css('display', 'block').appendTo('body');
            $(this).find('.modal-content').context.style[0]=""
            $(this).find('.modal-content').context.style[1]=""
            $(this).find('.modal-content').context.style.cssText=""
            $clone.remove();
        });
    })
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值