JavaScriptは全然知りません。Bootstrapのドキュメントには次のように書かれています
JavaScriptを介してモーダルを呼び出します。
$('#myModal').modal(options)
ページの読み込み時にこれを呼び出す方法がわかりません。Bootstrapページで提供されているコードを使用すると、要素のクリックでModalを正常に呼び出すことができますが、ページの読み込み時にすぐに読み込まれるようにします。
JavaScriptは全然知りません。Bootstrapのドキュメントには次のように書かれています
JavaScriptを介してモーダルを呼び出します。
$('#myModal').modal(options)
ページの読み込み時にこれを呼び出す方法がわかりません。Bootstrapページで提供されているコードを使用すると、要素のクリックでModalを正常に呼び出すことができますが、ページの読み込み時にすぐに読み込まれるようにします。
ページの読み込み時に呼び出すモーダルを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>
javascript
モーダルを表示する必要はありません
最も簡単な方法は、「hide」を「in」に置き換えることです。
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>
この実行可能なコードを試すことができます-
$(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>
詳細はこちらをご覧ください。
あなたはあなたの完全な答えを持っていると思います。
2021年の更新
BootstrapがjQueryを必要としなくなったので、JavaScriptを使用してモーダルを簡単に表示できます。
var myModal = new bootstrap.Modal(document.getElementById('myModal'), {})
myModal.toggle()
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>
Andre's Ilichが言うことに関しては、jqueryと呼ばれる行の後にjsスクリプトを追加する必要があります。
<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(window).load(function(){
$('#myModal').modal('show');
});
</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>
私の場合、モーダルを表示するために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で初期化せずに例を見つけることができなかったので、ページの読み込み時にjavascriptを遅延$('#myModal').modal('show')
させずにモーダルを実装する方法についての提案を以下に示します。
<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')を使用してモーダルを(再び)初期化します。
データ属性を使用するだけで、JavaScriptを記述せずにモーダルをアクティブ化できます。
trueに設定されたオプション「show」は、初期化されたときにモーダルを表示します。
<div class="modal fade" tabindex="-1" role="dialog" data-show="true"></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>
お役に立てれば
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>
<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"
ブートストラップ3では、jsを使用してモーダルを初期化する必要があります。ページの読み込み時にモーダルマークアップがページにある場合は、モーダルが表示されます。
これを防ぎたい場合はshow: false
、モーダルを初期化するオプションを使用してください。このようなもの:
$('.modal').modal({ show: false })
以前の回答からの優れた応答に基づいて、jQueryを使用しないBootstrap 5では、これは機能しました。
document.querySelector('[data-target="#exampleModal"]').click();
完全なスニペット:
window.onload = () => {
document.querySelector('[data-target="#exampleModal"]').click();
}
<script src="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha1/js/bootstrap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha1/css/bootstrap.min.css" rel="stylesheet" />
<div class="container py-3">
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
Launch demo modal
</button>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<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" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
</div>
jquery.js
ページの読み込みを高速化するために、延期したままにすることをお勧めします。ただし、jquery.js
延期された$(window).load
場合は機能しない可能性があります。その後、あなたは試すことができます
setTimeout(function(){$('#myModal').modal('show');},3000);
ページが完全に読み込まれた後、モーダルがポップアップ表示されます(jqueryを含む)
ブートストラップが却下されて機能が失われるのを防ぐには、通常の起動ボタンを作成し、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();
)}
それが役に立てば幸い。乾杯!
最近、Djangoメッセージを使用して、ボタンクリック(ページの読み込みなど)ではなく、jQueryを使用せずにBootstrap5モーダルを起動する必要がありました。これは私がそれをした方法です:
テンプレート/HTML
<div class="modal" id="notification">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Notification!</h5>
<button type="button" class="btn-close"
data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
{% for m in messages %}
{{ m }}
{% endfor %}
</div>
<div class="modal-footer justify-content-between">
<a class="float-none btn btn-secondary" href="{% url 'some_view' %}"
type="button">
Link/Button A
</a>
<button type="button" class="btn btn-primary"
data-bs-dismiss="modal">
Link/Button B
</button>
</div>
</div>
</div>
</div>
ファイルまたはテンプレート内のJS
{% block javascript %}
{{ block.super }}
<script>
var test_modal = new bootstrap.Modal(
document.getElementById('notification')
)
test_modal.show()
</script>
{% endblock javascript %}
このメソッドは、Djangoテンプレートがなくても機能します。HTMLを使用してscript
、ブートストラップJSの後で要素の終わりの前にロードされるファイルまたは要素にJSを配置するだけbody
です。
遅いかもしれませんが、この注文の問題を解決できず、モーダルが表示されませんでした。jquery click();を使用しました。
私はこれを試しました、そしてそれはうまくいきました:)
モーダルショーを呼び出すボタンを作成します>そのボタンを表示としてスタイル設定します:なし; 例 :
$( "#clickme" ).click();
<html>
<head>
<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>
</head>
<body>
<input type="button" value="0" id="clickme" style="display:none;" data-toggle="modal" data-target="#exampleModal" />
<!-- Modal -->
<div id="exampleModal" class="modal" 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">Clicked Successfully</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>
</body></html>
jQueryを使用してこれを処理できます
テンプレートに最初にインポートする
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
jQueryスクリプトを使用してモーダルのIDをヒットします
<script type="text/javascript">
$(window).on('load', function() {
$('#staticBackdrop').modal('show');
});
</script>
これがケース表示のdjangoメッセージのモーダルです
{% if messages %}
{% for message in messages %}
<div class="modal fade" id="staticBackdrop" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="false">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="staticBackdropLabel">Message</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
{{ message }}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
{% endfor %}
{% endif %}