bootstrap modal 模態框拖拽擴展


主管要求bootstrap modal 帶有拖拽移動效果.代碼以下:bootstrap

JSthis

 1 // bootstrap 模態框窗口 移動擴展, 在bootstrap 初始化後 調用
 2 var btModalMoveEx = function () {
 3     function moveEx($this) {
 4         var $head = $this.find(".modal-header"), $dialog = $this.find(".modal-dialog");
 5         var move = {isMove: false, left: 0, top: 0};
 6         $this.on("mousemove", function (e) {
 7             if (!move.isMove) return;
 8             $dialog.offset({top: e.pageY - move.top, left: e.pageX - move.left});
 9         }).on("mouseup", function () {
10             move.isMove = false;
11         });
12         $head.on("mousedown", function (e) {
13             move.isMove = true;
14             var offset = $dialog.offset();
15             move.left = e.pageX - offset.left;
16             move.top = e.pageY - offset.top;
17         });
18     }
19 
20     var old = $.fn.modal;
21     $.fn.modal = function (o, _r) {
22         var $this = $(this);
23         // 標識 是否已經綁定過移動事件了.用於防止重複綁定
24         if (!$this.attr("isbindmv")){
25             $this.attr("isbindmv", "1");
26             moveEx($this);
27         }
28         return old.call(this, o, _r);
29     };
30 };

 CSS spa

.modal[isbindmv] .modal-header {
    cursor: move;
}

 

使用方式code

$('#editModal').modal({backdrop: 'static'});
相關文章
相關標籤/搜索