dialogタグを使ったモーダルが表示される時に「ふわっ」とフェードインさせる方法

dialogタグを使ったモーダルが表示される時に「ふわっ」とフェードインさせる方法
このところ、数回にわたって
「dialogタグとbackdrop擬似要素を使った、モーダルの作り方」に関する記事を書いてきました。

dialog要素を使ってモーダルウインドウを作成する方法
dialog要素を使ったモーダル内から、チェックボックス等の選択値を受け取る方法

今回は、上記の記事内では触れていなかった、
モーダルを表示する際に「ふわっ」とエフェクトをつけてフェードインさせる方法について、書いていきたいと思います。

まずは結論から。次のようなコードで実現できます

dialog要素を使ったモーダルウインドウを、「ふわっ」とフェードインさせる方法は、
具体的には、次のように書きます。
まずはコードをhtml, JS, cssの順に列挙します。

[html]

<div>
  <button id="buttonOpen" class="button-open">dialogタグを使ったモーダルを開く</button>
</div>
<dialog class="container-modal" id="modalDialog">
  <div class="wrapper-modal">
    <h2>シンプルなモーダル</h2>
    <p>
      このダイアログ(モーダルウインドウ)は、dialogタグで作成されています。
      dialogタグを使うことで、検索エンジンにも
      この要素がダイアログ(モーダルウインドウ)だよ、
      ということを明示できるのでは、と期待しています。
    </p>
    <button id="buttonClose" type="reset" class="button-close">モーダルを閉じる</v-btn>
  </div>
</dialog>

↑dialog要素を使った、モーダルのhtmlの基本形です。

[JavaScript]

<script>
const myDialog = document.getElementById('modalDialog');
const myButtonOpen = document.getElementById('buttonOpen');
const myButtonClose = document.getElementById('buttonClose');
myButtonOpen.addEventListener('click', () => {
  myDialog.showModal();
  myDialog.classList.add('is-animation');
});
myButtonClose.addEventListener('click', () => {
  myDialog.close('閉じた時に渡すテキスト(String)を指定できます');
});
</script>

↑dialog要素を使った、モーダルを開閉するためのJavaScriptの基本形です。

tedate Premiumとは?

「tedate Premium」 とは、tedate.jp 閲覧時に掲示される
広告を非表示にする事ができたり、会員限定記事が閲覧可能になる、
月額制の会員機能です。

無料で閲覧できるのはこちらまでとなります。
続きを閲覧するには、tedate Premiumにご登録ください。
登録済みの方のログインページはこちら
tedate Premiumのご説明・新規ご登録は次のリンクよりお進みください。
tedate Premium のご紹介

この記事をシェアする: