ポップアップ領域を表示する (ポップアップメニューやポップアップウィンドウなど) - CSS

ポップアップ領域を表示するコードを紹介します。

概要

ポップアップ領域を表示する場合、CSSのpositionプロパティで absolute を指定し、visibility プロパティを "hidden" に設定します。 ポップアップ領域を表示する際は、visibility プロパティを "visilbe" に設定し、ポップアップ領域を表示する座標値を設定します。

実装例

コード

SimplePopup.css
.PopupFrame{
  width:360px;
  height:240px;
  background-color:#a0d3f7;
  position:absolute;
  visibility:hidden;
}
SimplePopup.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
  <link rel="stylesheet" href="SimplePopup.css" />
  <script type="text/javascript">
    function OnLinkClick() {
      var linkelem = document.getElementById("PopupLink1");
      var clientRect = linkelem.getBoundingClientRect();

      var elem = document.getElementById("PopupFrame1");
      elem.style.visibility = "visible";
      elem.style.left = clientRect.left + "px";
      elem.style.top = clientRect.top + "px";;
    }

    function OnCloseLinkClick() {
      var elem = document.getElementById("PopupFrame1");
      elem.style.visibility = "hidden";
    }
  </script>
</head>
<body>
  <p>段落1です。ABCDE</p>
  <p>段落2です。ABCDE</p>
  <p>段落3です。ABCDE</p>
  <p>段落4です。ABCDE</p>
  <p>段落5です。ABCDE</p>
  <p><a id="PopupLink1" href="javascript:OnLinkClick();">Popup表示</a></p>
  <p>段落6です。ABCDE</p>
  <p>段落7です。ABCDE</p>
  <p>段落8です。ABCDE</p>
  <p>段落9です。ABCDE</p>
  <p>段落10です。ABCDE</p>

  <div id="PopupFrame1" class="PopupFrame">ポップアップ枠です。<a href="javascript:OnCloseLinkClick();">close</a></div>
</body>
</html>

解説

[Popup表示]リンクをクリックすると下図のJavaScirptコードを実行します。
ポップアップ領域の要素 "PopupFrame1" の要素を取得し、visibility プロパティを "visible" に設定します。 left, top の座標値はクリックしたリンクの "PopupLink1" の要素の top, left の座標を利用します。 リンクの位置にポップアップ領域が表示される動作になります。
    function OnLinkClick() {
      var linkelem = document.getElementById("PopupLink1");
      var clientRect = linkelem.getBoundingClientRect();

      var elem = document.getElementById("PopupFrame1");
      elem.style.visibility = "visible";
      elem.style.left = clientRect.left + "px";
      elem.style.top = clientRect.top + "px";;
    }

ポップアップ領域の[Close]リンクをクリックした場合は下記のJavScriptコードを実行します。
"PopupFrame1" の要素を取得し、visibility プロパティを "hidden" に設定し、ポップアップ領域を非表示にします。
    function OnCloseLinkClick() {
      var elem = document.getElementById("PopupFrame1");
      elem.style.visibility = "hidden";
    }

表示結果

上記HTMLファイルをWebブラウザで表示します。下図のページが表示されます。ページ内の[Popup表示]リンクをクリックします。


リンクをクリックすると水色のポップアップ枠が表示されます。枠の表示位置はクリックした[Popup表示]のリンク位置になります。 ポップアップ枠はコンテンツの上に覆いかぶさる表示になるため、背後のリンクや段落の文字列はポップアップ枠に隠されます。


ポップアップ表示された水色の枠の[close]リンクをクリックします。ポップアップ枠が閉じられます。

著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
最終更新日: 2021-02-03
作成日: 2021-02-03
iPentec all rights reserverd.