11

我使用引导模式插件。但模态对话框未显示在中心。为什么?我的错?

http://dl.dropbox.com/u/573972/stackoverflow/bootstrap/modal.html

<!DOCTYPE html>
<head>
  <meta charset="utf-8">
  <title>test</title>
  <meta name="description" content="">
  <meta name="author" content="">
  <!-- Mobile Specific-->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <!-- CSS-->
  <link rel="stylesheet" href="bootstrap.min.css">
  <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/1.7/jquery.min.js'></script>
</head>
<body>
  <div id="login" class="modal">
    <div class="modal-header">
      <h3>Login to Room fuga</h3>
    </div>
    <div class="modal-body">
      hogehoge
    </div>
  </div>
  <script src="bootstrap.min.js">
  </script>
  <script>
$('#login').modal();
</script>
</body>
</html>
4

5 回答 5

18

我找到了这个解决方法来解决这个问题:

$('#YourModal').modal().css(
            {
                'margin-top': function () {
                    return -($(this).height() / 2);
                }
            })

来源:https ://github.com/twitter/bootstrap/issues/374

于 2012-05-20T14:05:40.393 回答
10

如果您的 twitter 引导模式对话框未水平居中,您可以通过 css 修复此问题。

只需给模态对话框一个负的左边距,它是宽度的一半,例如:

 .modalDialogBlabla {
     margin: 0 0 0 -250px;
     width: 500px;
  }
于 2012-09-12T08:02:57.203 回答
10

捕获show事件.modal然后计算新位置:

$('body').on('show', '.modal', function(){
  $(this).css({'margin-top':($(window).height()-$(this).height())/2,'top':'0'});
});​

演示:http: //jsfiddle.net/sonic1980/b2EHU/

于 2012-12-30T17:51:03.077 回答
2

根据上面 p4810 的回答,但也要处理用户在屏幕上的位置。适用于绝对定位。

$('#YourModal').modal().css(
            {
                'margin-top': function () {
                    return window.pageYOffset-($(this).height() / 2 );
                }
            });
于 2013-02-06T22:21:04.530 回答
-15

你试过了吗:

$( "#login" ).dialog({
    modal: true
});

参考:http: //jqueryui.com//demos/dialog/modal.html

于 2012-04-28T12:42:32.560 回答