我一点都不懂javascript。引导文档说
通过javascript调用模式:$('#myModal')。modal(options)
我不知道如何在页面加载时调用它。使用引导页面上提供的代码,我可以在元素单击时成功调用Modal,但是我希望它在页面加载时立即加载。
我一点都不懂javascript。引导文档说
通过javascript调用模式:$('#myModal')。modal(options)
我不知道如何在页面加载时调用它。使用引导页面上提供的代码,我可以在元素单击时成功调用Modal,但是我希望它在页面加载时立即加载。
Answers:
只需将要在页面加载时调用的模式包装在load
文档头部的jQuery 事件内,它就会弹出,如下所示:
JS
<script type="text/javascript">
$(window).on('load',function(){
$('#myModal').modal('show');
});
</script>
的HTML
<div class="modal hide fade" id="myModal">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>Modal header</h3>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
<div class="modal-footer">
<a href="#" class="btn">Close</a>
<a href="#" class="btn btn-primary">Save changes</a>
</div>
</div>
您仍然可以通过以下链接来调用页面中的模式:
<a class="btn" data-toggle="modal" href="#myModal" >Launch Modal</a>
$(document).ready( ...
。它仅适用于窗口加载事件:$(window).load( ...
。
$(document).ready( ...
当我将此脚本存储在我的Modal的MVC PartialView中时,该脚本才起作用,当用户单击某些内容时会动态添加该脚本,所以也许就是这个原因。具有讽刺意味的是,您对不采取行动的警告使我得以弄清楚如何使其对我有用。那谢谢啦?:)
您不需要javascript
显示模态
最简单的方法是将“隐藏”替换为“中”
class="modal fade hide"
所以
class="modal fade in"
并且您需要添加onclick = "$('.modal').hide()"
按钮关闭;
PS:我认为最好的方法是添加jQuery脚本:
$('.modal').modal('show');
只需添加以下内容-
class="modal show"
工作示例
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<div class="container">
<!-- Trigger the modal with a button -->
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>
<!-- Modal -->
<div class="modal show" id="myModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Modal Header</h4>
</div>
<div class="modal-body">
<p>Some text in the modal.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
onclick = "$('.modal').removeClass('show').addClass('fade');"
您可以尝试以下可运行的代码-
$(window).load(function()
{
$('#myModal').modal('show');
});
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<div class="container">
<!-- Trigger the modal with a button -->
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>
<!-- Modal -->
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Modal Header</h4>
</div>
<div class="modal-body">
<p>Some text in the modal.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
在这里可以找到更多。
认为您有完整的答案。
在我的情况下,添加jQuery以显示模式不起作用:
$(document).ready(function() {
$('#myModal').modal('show');
});
这似乎是因为该模态具有aria-hidden =“ true”属性:
<div class="modal fade" aria-hidden="true" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
需要删除该属性以及上面的jQuery:
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
请注意,我尝试将模式类从更改modal fade
为modal fade in
,但这没有用。同样,将类从更改为modal fade
可以modal show
停止模态。
我无法找到一个例子,而不使用JavaScript初始化的模式,$('#myModal').modal('show')
,所以继承人你如何能实现它没有一个建议的JavaScript延迟页面加载。
<div class="modal in" id="MyModal" tabindex="-1" role="dialog" style="display: block; padding-right: 17px;">
用类和样式编辑您的身体:
<body class="modal-open" style="padding-right:17px;">
添加模态背景div
<div class="modal-backdrop in"></div>
添加脚本
$(document).ready(function() {
$('body').css('padding-right', '0px');
$('body').removeClass('modal-open');
$('.modal-backdrop').remove();
$('#MyModal').modal('show'); });
将会发生的是,您的模式的html将在页面加载时加载而没有任何javascript(无延迟)。在这一点上,您无法关闭模式,这就是为什么我们拥有document.ready脚本,以便在加载所有内容后正确加载模式的原因。实际上,我们将删除自定义代码,然后使用.modal('show')再次初始化模式。
就像其他人提到的那样,使用display:block创建模态
<div class="modal in" tabindex="-1" role="dialog" style="display:block">
...
将背景放置在页面上的任何位置,不一定需要将其放在页面底部
<div class="modal-backdrop fade show"></div>
然后,要能够再次关闭对话框,请添加此
<script>
$("button[data-dismiss=modal]").click(function () {
$(".modal.in").removeClass("in").addClass("fade").hide();
$(".modal-backdrop").remove();
});
</script>
希望这可以帮助
经过Bootstrap 3和jQuery(2.2和2.3)的测试
$(window).on('load',function(){
$('#myModal').modal('show');
});
<!-- Modal -->
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title"><i class="fa fa-exclamation-circle"></i> //Your modal Title</h4>
</div>
<div class="modal-body">
//Your modal Content
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Fechar</button>
</div>
</div>
</div>
</div>
除了user2545728和Reft答案外,没有javascript,但带有modal-backdrop in
3件事要添加
modal-backdrop in
在.modal类之前的类的divstyle="display:block;"
到.modal类fade in
与.modal类一起例
<div class="modal-backdrop in"></div>
<div class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="channelModal" style="display:block;">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="channelModal">Welcome!</h4>
</div>
<div class="modal-body" style="height:350px;">
How did you find us?
</div>
</div>
</div>
</div>
更新2020-Bootstrap 4
Bootstrap 4的模式标记已稍有更改。这是您可以在页面加载时打开模式的方式,并且可以选择延迟显示模式...
$(window).on('load',function(){
var delayMs = 1500; // delay in milliseconds
setTimeout(function(){
$('#myModal').modal('show');
}, delayMs);
});
<div class="modal fade" id="myModal">
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">My Modal</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary mx-auto" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
在bootstrap 3中,您只需要通过js初始化模态,如果在页面加载时模态标记位于页面中,则模态将显示。
如果要防止这种情况,请show: false
在初始化模态时使用该选项。像这样:
$('.modal').modal({ show: false })
为了避免引导程序被否决并失去其功能,只需创建一个常规的启动按钮,为其提供一个ID,然后使用jquery'单击它',如下所示:启动按钮:
<button type="button" id="btnAnouncement" class="btn btn-primary" data-toggle="modal" data-target="#modalAnouncement">
See what´s new!
</button>
jQuery触发器:
$(document).ready(function () {
$('#btnAnouncement').click();
)}
希望能帮助到你。干杯!
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script>
$(document).ready(function(){
$('#myModal').modal('show');
setTimeout(function(){
$('#myModal').modal('hide');
}, 5000);
});
</script>
<style>
.loader {
border: 13px solid #f3f3f3;
border-radius: 50%;
border-top: 16px solid #3498db;
width: 100px;
height: 100px;
-webkit-animation: spin 2s linear infinite; /* Safari */
animation: spin 2s linear infinite;
}
/* Safari */
@-webkit-keyframes spin {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.modal-dialog{
width: 150px;
margin: 10% auto;
}
.modal-content{
background-color: transparent;
border: 0;
border-radius: 0;
outline: 0;
box-shadow: none;
}
</style>
</head>
<body>
<div class="container">
<!-- Modal -->
<div class="modal fade" data-backdrop="static" id="myModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-body">
<div class="loader"></div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>