Bootstrap-3:不替换现有内容的警报

Man*_*ria 5 html css jquery twitter-bootstrap twitter-bootstrap-3

Image #1:带有.in 类的Bootstrap 警报:

在此处输入图片说明

Image #2:没有.in 类的Bootstrap Alert (隐藏下面的内容):

在此处输入图片说明

自过去三个小时以来,我一直在努力使警报完美运行 - 不取代其他内容。我已经阅读了一些博客文章和 SO Q&A,但无法达到预期的效果。

尝试:

  • 关闭(可关闭警报) - 或 - 淡出使display: none;内容有效地取代。
  • 不淡出但删除 .in 类会使元素隐藏但仍与其他元素重叠(请参阅下面的图像 #2 和 HTML)
  • 我试过使用 Z-Index 来解决这个问题,但没有奏效。
  • 接下来我将尝试尝试弹出警报,除非我可以通过 SO 找到更好的解决方案。

HTML:

<div class="alert alert-message alert-info fade"><p> Joined: StaticRoom </p></div>
Run Code Online (Sandbox Code Playgroud)

JavaScript:

function status(type, msg) {
    var alertHTML = "<div class='alert alert-message alert-" + type + " fade'><p> " + msg + " </p></div>";

    $("#roomInfo").html(alertHTML);
    $(".alert-message").addClass("in");

    setTimeout(function () {
      $(".alert-message").removeClass("in");
    }, 3000);  
}
Run Code Online (Sandbox Code Playgroud)

图片#3:期望:

  1. 警报过期后没有重叠
  2. 过期时不应替换现有内容:

在此处输入图片说明

帮助!

zes*_*ssx 2

这是自我警觉造成的heightpadding而且margin。该类.fade仅更改opacity值,不再更改:

摘自bootstrap.css

.fade{
    opacity:0;
    -webkit-transition:opacity .15s linear;
    transition:opacity .15s linear
}
.fade.in{
    opacity:1
}
Run Code Online (Sandbox Code Playgroud)

你可以做的是用以下命令覆盖 Bootstrap CSS:

.fade {
    height: 0;
    padding: 0;
    margin: 0;
    -webkit-transition:height .15s linear;
    transition:height .15s linear;
}
.fade.in {
    height: auto;
    padding: 15px;
    margin-bottom: 20px;
}
Run Code Online (Sandbox Code Playgroud)

**编辑**
我没有得到你想要的绝对定位警报。因此,您不需要任何额外的类,只需一个简单的:

.movie {
    position: relative;
    width: 430px;
    margin: 20px auto;
    padding: 5px;
    padding-bottom: 40px; /* give extra space for form */
}
.movie form {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 5px;
}
.movie .alert {
    position: absolute;
    bottom: 30px; left: 5px; right: 5px;
}
Run Code Online (Sandbox Code Playgroud)