3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【micromodal.js】モーダルウィンドウのライブラリの使い方

Posted at

環境

今回の開発環境は以下の通りです。
Laravel9
Inertia
Vue3

micromoal.jsとは

シンプルなモーダルウィンドウを簡単に作れるライブラリです。

公式

インストール

npm i micromodal@0.4.10 --save

コマンド実行後、json:package.jsonにmicromodalが追加されていれば、無事にインストールされています。

package.json
"dependencies": {
    "micromodal": "^0.4.10",
}

準備

micromodal.js

resources/js/micromodal.jsを新たに作成します。

micromodal.js
import MicroModal from 'micromodal'

// MicroModal.init()で初期化
MicroModal.init({
    // オプション
    
    // 背景をスクロールさせない
    disableScroll: true
});

micromodal.css

resources/css/micromodal.cssを作成し、下記のページからコードをコピー

※公式マニュアルにこのコードが書かれているGitHubへのリンクがあります。

app.js

resources/js/app.jsでこれまでに作成したファイルをインポートし、使えるようにします。

app.js
import './micromodal';
import '../css/micromodal.css';

components

コンポーネントを作っていきます。

resources/Components/MicroModal.vueを作ります。

MicroModal.vue
<script setup>
import { ref } from 'vue'

// boolean型の変数 初期値がfalse
// クリックしたらtrueに変わる
const isShow = ref(false)
const toggleStatus = () => { isShow.value = !isShow.value}
</script>

<template>
<div v-show="isShow" class="modal" id="modal-1" aria-hidden="true">
        <div class="modal__overlay" tabindex="-1" data-micromodal-close>
            <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-1-title">
            <header class="modal__header">
                <h2 class="modal__title" id="modal-1-title">
                Micromodal
                </h2>
                <button @click="toggleStatus" type="button" class="modal__close" aria-label="Close modal" data-micromodal-close></button>
            </header>
            <main class="modal__content" id="modal-1-content">
                <p>
                Try hitting the <code>tab</code> key and notice how the focus stays within the modal itself. Also, <code>esc</code> to close modal.
                </p>
            </main>
            <footer class="modal__footer">
                <button @click="toggleStatus" type="button" class="modal__btn modal__btn-primary">Continue</button>
                <button @click="toggleStatus" type="button" class="modal__btn" data-micromodal-close aria-label="Close this dialog window">Close</button>
            </footer>
            </div>
        </div>
    </div>

    <button @click="toggleStatus" type="button" data-micromodal-trigger="modal-1" href='javascript:;'>Open Modal Dialog</button>
</template>

使いたいファイルに記述

使いたいファイルでコンポーネントを呼び出せば使えるようになります。

Index.vue
import MicroModal from '@/Components/MicroModal.vue'

<MicroModal />
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?