私はjavascriptを全く知りません。ブートストラップのドキュメントには
Javascriptを使ってモーダルを呼び出します。$( '#myModal')。modal(options)
ページの読み込み時にこれを呼び出す方法はわかりません。ブートストラップページで提供されているコードを使用して、要素クリックでモーダルを正常に呼び出すことができますが、ページをロードするとすぐにロードします。
ページのロード時に呼び出したいモーダルをドキュメントのheadセクションのjQuery load
イベント内にラップするだけで、ポップアップ表示されるはずです。
_ 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>
モーダルを表示するのにjavascript
は必要ありません
最も簡単な方法は、 "hide"を "in"に置き換えることです。
class="modal fade hide"
そう
class="modal fade in"
ボタンを閉じるときにonclick = "$('.modal').hide()"
を追加する必要があります。
シモンズ:私は最善の方法は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>
あなたはこのランナブルコードを試すことができます -
$(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>
もっと見つけることができますここ。
あなたの完全な答えを持っていると思います。
andre's Ilichがあなたがjqueryと呼ぶものの行の後にjsスクリプトを追加しなければならないと言うことに関して:
<script src="content/bootstrapJS/jquery-2.1.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(window).load(function(){
$('#myModal').modal('show');
});
</script>
私の場合はそれが問題でした
単純にデータ属性を介してJavaScriptを記述せずにモーダルをアクティブにすることができます。
オプション "show"をtrueに設定すると、初期化時にモーダルが表示されます。
<div class="modal fade" tabindex="-1" role="dialog" data-show="true"></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')
を使用してモーダルを初期化する without という例が見つからなかったため、ページ読み込み時に javascript delay なしで実装する方法についての提案があります。
<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を.modal( 'show')で初期化します。
<div id="ModalStart" class="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-body">
<p><i class="icon-spinner icon-spin icon-4x"></i></p>
</div>
</div>
Javascriptがなくても起動時に表示できます。クラス "hide"を削除するだけです。
class="Modal"
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>
ブートストラップ3では、jsを介してモーダルを初期化するだけでよく、ページをロードした瞬間にモーダルマークアップがページ内にあれば、モーダルが表示されます。
これを回避したい場合は、モーダルを初期化する場所でオプションshow: false
を使用してください。このようなもの:$('.modal').modal({ show: false })
User2545728とReftの回答に加えて、 JavaScriptなし modal-backdrop in
付き
追加する3つのこと
modal-backdrop in
クラスを持つ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>
他の人が言ったように、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>
お役に立てれば
アップデート2018 - ブートストラップ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>
<!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>
あなたはより速いページロードのためにjquery.js
を延期したままにしたいかもしれません。ただし、jquery.js
が延期されている場合、$(window).load
は機能しない可能性があります。それからあなたは試すことができます
setTimeout(function(){$('#myModal').modal('show');},3000);
(jqueryを含む)ページが完全に読み込まれると、モーダルがポップアップします。
ページがまだ読み込まれているときにmodalを表示したい場合は、
呼び出し $("modal_selector").modal("show")
inside$("document").ready()
function、
および 閉じる そこに$(window).on("load")
event!
なぜでしょうか。 : https://stackoverflow.com/a/3698214/9438347を参照