哎呀呀呀。bootstrap框架的modal经常会被用到。比如弹出注册登录框。不过,在弹出窗口的时候,没办法垂直居中。网上有一些解决方法,不过,修改最少,体验最好的就是修改bootstrap.js的源码。这个等会说,先了解下bootstrap modal。

这里有介绍:http://www.runoob.com/bootstrap/bootstrap-modal-plugin.html

modal的常见层次结构:
modal,fade -> modal-dialog -> modal-content-> modal-header,modal-body,modal-footer。这些,能快速达成modal窗口的样式。不过,最少只需要一个modal属性,就可以达到modal效果。fade是缓动,modal-content是滤镜阴影。

modal的最简单的写法:
一个modal还有一个触发modal。如果不手动写js,需要在触发modal的div里设置:data-toggle=”modal” 和data-target=”#mymodal”。窗口modal那里,类名要一个modal,id名和data-target对应。
默认情况下,窗口是隐藏掉的。

除了上边的方法可以弹出modal窗口,还可以通过jquery实现。
$(‘#mymodal’).modal(‘show’); (显示)
$(‘#mymodal’).modal(‘hide’); (隐藏)

还可以通过给div设置data-dismiss=”modal”来隐藏窗口。

其实,关于modal的用法还有很多。比如窗口的显示,隐藏事件。当显示和隐藏的时候,会有事件抛出,根据需要去侦听。细节方面也很多。

回归正题,怎么让弹出的窗口居中呢。请点击下边的连接教程。
http://www.tuicool.com/articles/j2uauuE

看完后,发现,原来只需要找到modal的adjustDialog函数。可以在bootstrap.js中搜Modal.prototype.adjustDialog。在其尾部追加这两句代码:

 // 是弹出框居中。。。
 var $modal_dialog = $(this.$element[0]).find('.modal-dialog');
 var m_top = ( $(document).height() - $modal_dialog.height() )/2;
 $modal_dialog.css({'margin': m_top + 'px auto'});