ポップアップウィンドウで承認された回答を使用すると、いくつかの問題が発生する可能性があります。ランダムな場所をクリックすると、望ましくないアクションが発生する場合があります。つまり、ボタンを誤ってクリックすると、新しいページに移動する場合があります。
これが最も効率的な解決策かどうかはわかりませんが、これを防ぐために、スクリーンマスクを使用することをお勧めします。スクリーンマスクがタグのすぐ下にあることを確認して、<body>
すべての画面をでカバーできるようにしますwidth:100%; height: 100%
。また、何よりも。による要素であることに注意してくださいz-index: 99
。スクリーンマスクがアクティブなときに別のアイテムまたはdivをクリックできるようにする場合は、そのアイテムまたはdivに高いz-indexを割り当てるだけです。
スクリーンマスクは最初は表示されません(displayed:none
)、クリックすると非表示関数を呼び出します(onclick="hidemenu()"
)。
<body>
<div class="screenmask" onclick="hidemenu()" style="position:fixed; width: 100%; height: 100%; top: 0px; right: 0px; display: none; z-index: 99;"></div>
「同じページ上の複数の異なるポップアップメニュー」を処理するjavascript関数は、次のようになります。
<script>
// an element with onclick="showmenu('id_here')" pops a menu in the screen
function showmenu(id) {
var popmenu = document.getElementById(id); // assume popmenu is of class .cardmenu
$('.cardmenu').hide(); // clear the screen from other popmenus first
$(popmenu).show(); // pop the desired specific menu
$('.screenmask').show(); // activate screenmask
}
function hidemenu() { // called when clicked on the screenmask
$('.cardmenu').hide(); // clear the screen from all the popmenus
$('.screenmask').hide(); // deactivate screenmask
}
</script>