我一直在使用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();
});