详解为BootstrapModal添加拖拽的方法-创新互联
网上有许多给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");
});
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享题目:详解为BootstrapModal添加拖拽的方法-创新互联
新闻来源:http://www.scyingshan.cn/article/cdiods.html


咨询
建站咨询
