私はこのModalを私のウェブサイトの1ページに複数のリンクに使用しています。私が必要とするのは、ユーザーが外をクリックしたときにモーダルウィンドウを閉じるスクリプト/コードです。スクリプトがidを必要とするので、これは動作しますが、1つのリンクに対してのみ、このpostが見つかりました。このスクリプトを複数のIDに適用する方法はありますか?または他の方法?外部をクリックするとモーダルを閉じる - 複数のIDを持つ
-1
A
答えて
1
これは、id
に基づいて、それは:target
のうちの作品として、あなたは何をする必要があるか、このような別のモーダルのための一般的なクラスと異なるIDを与える、です:
window.onload = function() {
var modals = document.getElementsByClassName("modal");
var windows = document.getElementsByClassName("window");
var clearModal = function() {
location.hash = '';
};
for (var i = 0; i < modals.length; i++) {
modals[i].addEventListener('click', clearModal, false);
}
for (var i = 0; i < windows.length; i++) {
windows[i].addEventListener('click', function() {
event.stopPropagation();
event.cancelBubble = true;
}, false);
}
document.body.addEventListener('keydown', function() {
if (event.keyCode == 27) {
location.hash = '';
clearModal();
}
}, false);
};
* {
margin: 0;
padding: 0;
list-style: none;
}
.modal {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.25);
z-index: 9999;
pointer-events: none;
opacity: 0;
}
.modal .window {
background-color: #fff;
position: absolute;
top: 50%;
left: 50%;
width: 300px;
height: 200px;
margin: -100px 0 0 -150px;
text-align: center;
line-height: 120px;
}
.modal:target {
opacity: 1;
pointer-events: auto;
}
<div id="modal-1" class="modal">
<div class="window">Modal Window 1<br /><a href="#">Close</a></div>
</div>
<div id="modal-2" class="modal">
<div class="window">Modal Window 2<br /><a href="#">Close</a></div>
</div>
<div id="modal-3" class="modal">
<div class="window">Modal Window 3<br /><a href="#">Close</a></div>
</div>
<div id="modal-4" class="modal">
<div class="window">Modal Window 4<br /><a href="#">Close</a></div>
</div>
<div id="modal-5" class="modal">
<div class="window">Modal Window 5<br /><a href="#">Close</a></div>
</div>
<a href="#modal-1">Open Modal 1</a><br />
<a href="#modal-2">Open Modal 2</a><br />
<a href="#modal-3">Open Modal 3</a><br />
<a href="#modal-4">Open Modal 4</a><br />
<a href="#modal-5">Open Modal 5</a>
関連する問題
- 1. 外部のクリックで自分のモーダルを閉じる方法は?
- 2. モーダルの外側をクリックしてモーダルを閉じる
- 3. 外側をクリックするとモーダルが閉じます(angularjs-- plunker attacked)
- 4. 外をクリックするとモーダルを閉じることができます
- 5. ユーザーが外部にクリックするとドロップダウンを閉じる
- 6. 閉じるモーダルと私は連絡先をクリックすると
- 7. オーバーレイをクリックするとモーダルを閉じる方法
- 8. Watir Webdriver:モーダル外をクリックしても閉じないとテストする
- 9. ブートストラップモーダル内部が閉じているときにモーダルを閉じる
- 10. 閉じるモーダル - C#
- 11. ブートストラップモーダル - すぐにモーダル閉じ閉じる
- 12. 1つのjqueryコードを使用して複数のモーダルを閉じる
- 13. angular-bootstrap-datetimepicker閉じるをクリックするとカレンダーを閉じる
- 14. ライトボックスを閉じるDivの外をクリック
- 15. モーダルを閉じる/隠す
- 16. IDを持つモーダルを使用する
- 17. 複数の外部キーを持つget_absolute_url
- 18. ボタンをクリックした後にモーダルを閉じる
- 19. xをクリックするとモーダルを閉じることができません
- 20. モーダルJInternalFrameを閉じる
- 21. AngularJS - モーダルを閉じる
- 22. JQUERY:ユーザーがその外をクリックするとdivを閉じる
- 23. 複数のモーダルを複数のクリックで同じボタン(JavaScript)にポップアップする方法
- 24. Selenium Webdriver - 同じIDの複数の要素を持つ隠し要素をクリック
- 25. 1ページに同じデータターゲットを持つ複数のモーダル
- 26. AS2アプリで外部をクリックしてドロップダウンを閉じますか?
- 27. CompletableFutureチェーンの外部プロセスを閉じる
- 28. javascript外部URLのウィンドウを閉じる
- 29. 複数のモーダルを閉じることができませんか?
- 30. ユーザーが外部をクリックしたときにWPFダイアログウィンドウを閉じる方法
こんにちは、歓迎、StackOverflowへ。ヘルプページ、特に[ここではどのトピックについて聞かせていただけますか?](http://stackoverflow.com/help/on-topic)と[質問しないでください。」](http://stackoverflow.com/help/dont-ask)。さらに重要なことは、[Stack Overflow question checklist](http://meta.stackexchange.com/q/156810/204922)をお読みください。また、[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)についても知りたいことがあります。 –
ここにJavaScriptがありません... –
上記の投稿にjsがあります。 – Alin