亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

詳解為Bootstrap Modal添加拖拽的方法

2019-11-19 14:35:41
字體:
來源:轉載
供稿:網友

網上有許多給Bootstrap Modal添加拖拽實現,但是許多代碼看起來都比較復雜感覺封裝性可能也不太好,有的甚至使用了jquery ui的拖拽功能,這些都不是我想要的,其實我在給Bootstrap Modal添加拖拽功能的事情已經是2017年春節的時候了,彈指一揮間一年就過去了。2017年春節的時候,由于之前項目有同事使用layer來做前端,但是對于我這種略懂js前端的后端開發來說,讓我引入layer和layui的一整套東西是艱難的,曾經大致的瀏覽過layui的一些組件,發現組件功能不是很完備,可以預見的是稍微復雜點的項目后期就會帶來很多坑。因此當時就使用了bootstrap去作為前端的css框架,也大量使用modal這樣的組件來做彈出窗口。

步驟(基于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"); });}

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居中也可修改源代碼來完成。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久国产精品久久久久久| 美女啪啪无遮挡免费久久网站| 在线日韩精品视频| 97在线观看视频| 精品久久久一区| 中文国产成人精品| 91麻豆国产精品| 91网站在线免费观看| 日韩高清不卡av| 欧美日韩一区二区在线| 欧美巨乳美女视频| 国产丝袜视频一区| 国产一区av在线| 久久久中文字幕| 一区二区三区国产在线观看| 懂色av中文一区二区三区天美| 国产综合在线观看视频| 日韩网站在线观看| 亚洲欧美在线免费观看| 性色av一区二区三区红粉影视| 欧美猛男性生活免费| 国产专区欧美专区| 欧美日韩在线视频一区| 日韩免费观看网站| 日韩一区二区三区在线播放| 亚洲欧美另类在线观看| 久久国产色av| 亚洲福利视频网站| 亚洲欧美精品伊人久久| 亚洲国产成人久久综合一区| www.日韩av.com| 91精品国产乱码久久久久久久久| 欧美久久精品一级黑人c片| 欧美日本在线视频中文字字幕| 日韩成人高清在线| 欧美xxxx18性欧美| 欧美激情免费视频| 日韩欧美在线一区| 亚洲网址你懂得| 91av成人在线| 欧美床上激情在线观看| 午夜剧场成人观在线视频免费观看| 91精品国产高清久久久久久91| 亚洲黄色免费三级| 美乳少妇欧美精品| 日韩在线视频网| 成人精品一区二区三区电影黑人| 亚洲美女福利视频网站| 国产精品亚洲激情| 久久久999国产精品| 国产精品电影久久久久电影网| 国产成人精品免高潮费视频| 国产欧美日韩中文字幕| 亚洲国产精品系列| y97精品国产97久久久久久| 国产精品一区电影| 九九热精品视频在线播放| 国产aⅴ夜夜欢一区二区三区| 日韩精品极品在线观看播放免费视频| 日韩av电影免费观看高清| 精品国产户外野外| 久久在线精品视频| 日韩电影网在线| 最近2019中文字幕第三页视频| 91在线视频导航| 亚洲精品国精品久久99热| 久久免费精品视频| 国产91在线播放九色快色| 91久久精品国产91性色| 亚洲女人天堂色在线7777| 精品久久久久久久久久久久| 亚洲一区二区在线播放| 国产精品aaa| 美女精品久久久| 日韩精品丝袜在线| 91国产精品电影| 日韩免费不卡av| 久久综合电影一区| 日韩av免费在线看| 亚洲欧美精品伊人久久| 亚洲国产另类久久精品| 国产一区二区三区在线播放免费观看| 91在线免费视频| 国产69精品99久久久久久宅男| 91精品国产一区| 国产久一一精品| 国产成人亚洲精品| 国产成人精品在线观看| 中文字幕亚洲情99在线| 91精品国产91久久久久久不卡| 欧美成年人网站| 亚洲性生活视频在线观看| 国产精品国内视频| 日韩视频永久免费观看| 国产免费亚洲高清| 98精品国产高清在线xxxx天堂| 久久免费少妇高潮久久精品99| 性夜试看影院91社区| 国产精品久久久久久久久久免费| 日韩欧美大尺度| 日本中文字幕不卡免费| 大桥未久av一区二区三区| 黑人巨大精品欧美一区免费视频| 成人字幕网zmw| 97在线观看视频国产| 最新69国产成人精品视频免费| 在线国产精品视频| 国产亚洲精品va在线观看| 色综合久久88色综合天天看泰| 国产精品香蕉国产| 国产精品亚洲美女av网站| 日韩免费av一区二区| 欧美性开放视频| 国产日本欧美一区二区三区| 亚洲色图色老头| 日韩av电影在线网| 国产精品无av码在线观看| 国产精品白嫩美女在线观看| 亚洲a在线播放| 国产精品日韩在线| 最近2019年好看中文字幕视频| 午夜精品福利视频| 欧美激情videoshd| 欧美国产日韩中文字幕在线| 日韩欧美亚洲范冰冰与中字| 4k岛国日韩精品**专区| 欧美福利视频网站| 深夜福利一区二区| 久久手机免费视频| 日韩av免费在线观看| 日韩免费在线观看视频| 日韩欧美大尺度| 成人免费看吃奶视频网站| 欧美午夜视频在线观看| 日韩精品视频观看| 福利一区福利二区微拍刺激| 欧美亚洲另类视频| 精品免费在线观看| 精品福利一区二区| 在线播放日韩专区| 国产精品成人va在线观看| 九九久久久久99精品| 国产精品第3页| 亚洲欧美精品中文字幕在线| 91地址最新发布| 中文字幕日韩欧美精品在线观看| 亚洲第一页自拍| 欧美国产欧美亚洲国产日韩mv天天看完整| 色综合导航网站| 亚洲国产另类 国产精品国产免费| 国产免费一区二区三区在线能观看| 亚洲第一精品久久忘忧草社区| 91精品视频一区| 欧美国产日韩免费| 亚洲国产精久久久久久| 欧美疯狂xxxx大交乱88av| 免费97视频在线精品国自产拍| 久久夜色精品国产欧美乱| 国产精品国产三级国产aⅴ浪潮| 亚洲成人激情小说| 精品视频在线播放色网色视频| 国产精品视频中文字幕91| 国产精品一区二区av影院萌芽| 操91在线视频|