【发布时间】:2014-09-30 16:41:00
【问题描述】:
我已经使用 jQueryUI 很长时间了,但最近出于审美原因切换到了 Bootstrap。我现在正在努力解决我认为是一个简单的问题,并想知道其他更熟悉 Bootstrap 的人是否可以帮助我。
我有一个用于即时创建对话框的通用函数,有时我会显示一个没有按钮的对话框(在处理某些内容时),然后将其交换为一个有按钮的对话框(过程完成 - 单击好的,例如)。我不想在这里定义一个设定的过程,所以我基本上是说我希望能够在需要时关闭一个对话框并打开另一个对话框。这就是问题所在。
使用 Bootstrap,对话框可以进出动画,我喜欢它并希望保留它。我不想在交换对话框时这样做。我可以通过在显示时从第一个对话框中删除类fade 来做到这一点,在它显示之前从第二个对话框中删除,效果很好。然后我将这个类添加到第二个对话框中,这样它就会动画出来。但是,当我这样做时动画会出错,并且背景 div 应该轻轻淡出的地方会出现丑陋的闪光。
我整理了一个 jsfiddle 来演示这个问题。您可以单击第一个对话框上的关闭按钮来查看淡出动画应该的样子。
在我开始深入研究 Bootstrap 源文件之前,我们将不胜感激。
http://jsfiddle.net/ArchersFiddle/0302gLav/1/
tl;dr
查看 jsfiddle - 单击“显示对话框 2” - 单击“确定”。最后想去掉黑闪。
CSS
@import url("//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css");
.modal {
display: none;
}
HTML
<div id="dialog1" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Modal Dialog 1</h4>
</div>
<div class="modal-body">This is the first modal dialog</div>
<div class="modal-footer">
<button type="button" id="dialog-ok" class="btn btn-default">Show dialog 2</button>
<button type="button" id="dialog-close" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div id="dialog2" class="modal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Modal Dialog 2</h4>
</div>
<div class="modal-body">This is the second modal dialog</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">OK</button>
</div>
</div>
</div>
</div>
JavaScript
function showDialog2() {
$("#dialog1").removeClass("fade").modal("hide");
$("#dialog2").modal("show").addClass("fade");
}
$("#dialog1").modal("show");
$("#dialog-ok").on("click", function() {
showDialog2();
});
【问题讨论】:
标签: javascript jquery css twitter-bootstrap modal-dialog