• 技术文章 >web前端 >Bootstrap教程

    bootstrap如何拖拽组件

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2019-07-17 14:17:06原创3994

    步骤(基于3.3.4或更高的3.x版本):

    1.打开bootstrap.js源代码找到modal组件代码块,在Modal.DEFAULTS代码块下加入拖拽代码实现。

    Modal.DEFAULTS = {
     backdrop: true,
     keyboard: true,
     show: true
    }
    //新加入的拖拽
    Modal.prototype.draggable = function () {
     var $ele = this.$element;
     var mouseOffset;
     var $modalDialog = $ele.find(".modal-dialog");
     var dialogOffset;
     
     $ele.find(".modal-header").on('mousedown', function (event) {
     $(this).addClass({cursor: 'move'});
     $('body').addClass('select');
     dialogOffset = $modalDialog.offset();
     mouseOffset = {
      top: event.pageY - dialogOffset.top,
      left: event.pageX - dialogOffset.left
     };
     $('body').on("mousemove", function (event) {
      var left = event.pageX - mouseOffset.left;
      var top = event.pageY - mouseOffset.top;
      if (left < 10) {
      left = 0;
      } else if (left > $(window).width() - $modalDialog.width()) {
      left = $(window).width() - $modalDialog.width();
      }
      if (top < 10) {
      top = 0;
      } else if (top > $(window).height() - $modalDialog.height()) {
      top = $(window).height() - $modalDialog.height();
      }
      $modalDialog.offset({
      top: top,
      left: left
      });
     });
     });
     
     $(document).on("mouseup mouseleave", function () {
     $('body').off("mousemove");
     });
    }

    相关推荐:《bootstrap入门教程

    2. 在modal的show方法中添加调用draggable方法

    Modal.prototype.show = function (_relatedTarget) {
        var that = this
        var e = $.Event('show.bs.modal', {relatedTarget: _relatedTarget})
     
        this.$element.trigger(e)
     
        if (this.isShown || e.isDefaultPrevented()) return
     
        this.isShown = true
     
        //调用draggable()增加拖拽
        this.draggable()
        this.checkScrollbar()
        this.setScrollbar()
        this.$body.addClass('modal-open')
     
        this.escape()
        this.resize()
        //......省略
    }

    完成上面的操作后直接引入刚刚修改的源码js在页面就已经能够很好的支持拖拽了,而且整个拖拽是在可视窗口范围内,不会超出边界。

    注意事项:完成上面的源码修改后最好将bootstrap的源码压缩打包,不熟悉自动构建的可以放到开放的网站压缩,熟悉自动化构建的最好使用gulp、webpack这样的前端自动化工具来打包压缩源代码减少网页加载过程中占用带宽。当然也建议将文件命名为bootstrap-draggable.min.js类似的名称,方便一目了然的猜到这文件与原始文件有何不同。除此之外你也可以直接下载bootstrap3.x版本的源代码,然后修改里面的modal.js,然后使用它自身grunt构建来重新打包。

    问题引深:bootstrap 4.0+的版本源码和3.x的版本相比modal组件的修改并不很大,同样可以采取上面的方式。包括让modal居中也可修改源代码来完成。

    以上就是bootstrap如何拖拽组件的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:bootstrap 拖拽
    上一篇:bootstrap如何使用路径分页标签 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • bootstrap收费吗• easyui和bootstrap区别• thinkphp和bootstrap区别• bootstrap如何给div设置边框颜色
    1/1

    PHP中文网