メインコンテンツへスキップ

ドキュメント

モーダル

異なるスタイルとトランジションでモーダルダイアログを作成します。

使用方法

モーダルコンポーネントは、オーバーレイ、ダイアログ、およびオプションの閉じるボタンで構成されます。任意の要素を使用してモーダルダイアログを切り替えることができます。必要なJavaScriptを有効にするには、uk-toggle属性を追加します。<a>要素はモーダルのIDにリンクする必要があります。ボタンなどの別の要素を使用している場合は、uk-toggle="target: #ID"属性を追加して、モーダルコンテナのIDをターゲットにします。

<div>要素にuk-modal属性を追加して、モーダルコンテナとページをブランクアウトするオーバーレイを作成します。切り替え用の要素を示すためにidを追加することが重要です。次のクラスを使用して、モーダルのセクションを定義します。

クラス 説明
.uk-modal-dialog <div>要素にこのクラスを追加して、ダイアログを作成します
.uk-modal-body モーダルとそのコンテンツの間にパディングを作成するには、このクラスを追加します。
.uk-modal-title 見出し要素にこのクラスを追加して、モーダルタイトルを作成します。
.uk-modal-close <a>または<button>要素にこのクラスを追加して、閉じるボタンを作成し、その機能を有効にします。
<!-- This is a button toggling the modal -->
<button uk-toggle="target: #my-id" type="button"></button>

<!-- This is the modal -->
<div id="my-id" uk-modal>
    <div class="uk-modal-dialog uk-modal-body">
        <h2 class="uk-modal-title"></h2>
        <button class="uk-modal-close" type="button"></button>
    </div>
</div>
  • 開く
  • <!-- This is a button toggling the modal -->
    <button class="uk-button uk-button-default uk-margin-small-right" type="button" uk-toggle="target: #modal-example">Open</button>
    
    <!-- This is an anchor toggling the modal -->
    <a href="#modal-example" uk-toggle>Open</a>
    
    <!-- This is the modal -->
    <div id="modal-example" uk-modal>
        <div class="uk-modal-dialog uk-modal-body">
            <h2 class="uk-modal-title">Headline</h2>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
            <p class="uk-text-right">
                <button class="uk-button uk-button-default uk-modal-close" type="button">Cancel</button>
                <button class="uk-button uk-button-primary" type="button">Save</button>
            </p>
        </div>
    </div>

閉じるボタン

閉じるボタンを作成し、その機能を有効にし、適切なスタイリングと配置を追加するには、<a>または<button>要素に.uk-modal-close-defaultクラスを追加します。モーダルの外側に閉じるボタンを配置するには、.uk-modal-close-outsideクラスを追加します。

閉じるコンポーネントからuk-close属性を追加して、閉じるアイコンを適用します。

<div>
    <div class="uk-modal-dialog">
        <button class="uk-modal-close-default" type="button" uk-close></button>
    </div>
</div>

<div>
    <div class="uk-modal-dialog">
        <button class="uk-modal-close-outside" type="button" uk-close></button>
    </div>
</div>
  • <!-- This is a button toggling the modal with the default close button -->
    <button class="uk-button uk-button-default uk-margin-small-right" type="button" uk-toggle="target: #modal-close-default">Default</button>
    
    <!-- This is the modal with the default close button -->
    <div id="modal-close-default" uk-modal>
        <div class="uk-modal-dialog uk-modal-body">
            <button class="uk-modal-close-default" type="button" uk-close></button>
            <h2 class="uk-modal-title">Default</h2>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        </div>
    </div>
    
    <!-- This is a button toggling the modal with the outside close button -->
    <button class="uk-button uk-button-default uk-margin-small-right" type="button" uk-toggle="target: #modal-close-outside">Outside</button>
    
    <!-- This is the modal with the outside close button -->
    <div id="modal-close-outside" uk-modal>
        <div class="uk-modal-dialog uk-modal-body">
            <button class="uk-modal-close-outside" type="button" uk-close></button>
            <h2 class="uk-modal-title">Outside</h2>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        </div>
    </div>

モーダルを中央に配置

モーダルダイアログを垂直方向に中央に配置するには、マージンコンポーネント.uk-margin-auto-verticalクラスを使用できます。

<div class="uk-flex-top" uk-modal>
    <div class="uk-modal-dialog uk-margin-auto-vertical"></div>
</div>
  • 開く
  • <a class="uk-button uk-button-default" href="#modal-center" uk-toggle>Open</a>
    
    <div id="modal-center" class="uk-flex-top" uk-modal>
        <div class="uk-modal-dialog uk-modal-body uk-margin-auto-vertical">
    
            <button class="uk-modal-close-default" type="button" uk-close></button>
    
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
        </div>
    </div>

注記 IE 11をサポートするには、モーダルコンテナに.uk-flex-topが必要です。


モーダルを異なるコンテンツセクションに分割するには、次のクラスを使用します。

クラス 説明
.uk-modal-header <div>要素にこのクラスを追加して、モーダルヘッダーを作成します。
.uk-modal-footer <div>要素にこのクラスを追加して、モーダルフッターを作成します。
<div uk-modal>
    <div class="uk-modal-dialog">
        <button class="uk-modal-close-default" type="button" uk-close></button>
        <div class="uk-modal-header">
            <h2 class="uk-modal-title"></h2>
        </div>
        <div class="uk-modal-body"></div>
        <div class="uk-modal-footer"></div>
    </div>
</div>
  • 開く
  • <a class="uk-button uk-button-default" href="#modal-sections" uk-toggle>Open</a>
    
    <div id="modal-sections" uk-modal>
        <div class="uk-modal-dialog">
            <button class="uk-modal-close-default" type="button" uk-close></button>
            <div class="uk-modal-header">
                <h2 class="uk-modal-title">Modal Title</h2>
            </div>
            <div class="uk-modal-body">
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
            </div>
            <div class="uk-modal-footer uk-text-right">
                <button class="uk-button uk-button-default uk-modal-close" type="button">Cancel</button>
                <button class="uk-button uk-button-primary" type="button">Save</button>
            </div>
        </div>
    </div>

コンテナ修飾子

.uk-modal-containerクラスを追加して、モーダルダイアログをデフォルトのコンテナ幅に拡張します。

<div class="uk-modal-container" uk-modal>…</div>
  • 開く
  • <a class="uk-button uk-button-default" href="#modal-container" uk-toggle>Open</a>
    
    <div id="modal-container" class="uk-modal-container" uk-modal>
        <div class="uk-modal-dialog uk-modal-body">
            <button class="uk-modal-close-default" type="button" uk-close></button>
            <h2 class="uk-modal-title">Headline</h2>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        </div>
    </div>

フル修飾子

ページ全体を埋めるモーダルを作成するには、.uk-modal-fullクラスを追加します。閉じるボタンに.uk-modal-close-fullクラスを追加して、スタイリングを調整することもお勧めします。

<div class="uk-modal-full" uk-modal>
    <div class="uk-modal-dialog">
        <button class="uk-modal-close-full uk-close-large" type="button" uk-close></button>
    </div>
</div>

グリッドクラスを使用して、見栄えの良い分割フルスクリーンモーダルを作成できます。

  • 開く
  • <a class="uk-button uk-button-default" href="#modal-full" uk-toggle>Open</a>
    
    <div id="modal-full" class="uk-modal-full" uk-modal>
        <div class="uk-modal-dialog">
            <button class="uk-modal-close-full uk-close-large" type="button" uk-close></button>
            <div class="uk-grid-collapse uk-child-width-1-2@s uk-flex-middle" uk-grid>
                <div class="uk-background-cover" style="background-image: url('images/photo.jpg');" uk-height-viewport></div>
                <div class="uk-padding-large">
                    <h1>Headline</h1>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
                </div>
            </div>
        </div>
    </div>

オーバーフロー

デフォルトでは、コンテンツがウィンドウの高さを超えると、ページはモーダルと一緒にスクロールします。モーダル内にスクロールバーを適用するには、ユーティリティコンポーネントuk-overflow-auto属性をモーダル本文に追加します。

<div uk-modal>
    <div class="uk-modal-dialog" uk-overflow-auto></div>
</div>
  • 開く
  • <a class="uk-button uk-button-default" href="#modal-overflow" uk-toggle>Open</a>
    
    <div id="modal-overflow" uk-modal>
        <div class="uk-modal-dialog">
    
            <button class="uk-modal-close-default" type="button" uk-close></button>
    
            <div class="uk-modal-header">
                <h2 class="uk-modal-title">Headline</h2>
            </div>
    
            <div class="uk-modal-body" uk-overflow-auto>
    
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
            </div>
    
            <div class="uk-modal-footer uk-text-right">
                <button class="uk-button uk-button-default uk-modal-close" type="button">Cancel</button>
                <button class="uk-button uk-button-primary" type="button">Save</button>
            </div>
    
        </div>
    </div>

メディア

メディアを表示する場合は、最初にライトボックスコンポーネントが必要なすべてを提供していないかどうかを確認する必要があります。ただし、モーダルを使用して、メディアをラップするマークアップをより詳細に制御することもできます。

注記 ビデオコンポーネントuk-video属性を使用して、モーダルが閉じられたときにビデオが停止するようにします。

<div uk-modal>
    <div class="uk-modal-dialog uk-width-auto">
        <iframe src="" uk-video></iframe>
    </div>
</div>
  • 画像 ビデオ YouTube Vimeo

  •  <p uk-margin>
        <a class="uk-button uk-button-default" href="#modal-media-image" uk-toggle>Image</a>
        <a class="uk-button uk-button-default" href="#modal-media-video" uk-toggle>Video</a>
        <a class="uk-button uk-button-default" href="#modal-media-youtube" uk-toggle>YouTube</a>
        <a class="uk-button uk-button-default" href="#modal-media-vimeo" uk-toggle>Vimeo</a>
    </p>
    
    <div id="modal-media-image" class="uk-flex-top" uk-modal>
        <div class="uk-modal-dialog uk-width-auto uk-margin-auto-vertical">
            <button class="uk-modal-close-outside" type="button" uk-close></button>
            <img src="images/photo.jpg" width="1800" height="1200" alt="">
        </div>
    </div>
    
    <div id="modal-media-video" class="uk-flex-top" uk-modal>
        <div class="uk-modal-dialog uk-width-auto uk-margin-auto-vertical">
            <button class="uk-modal-close-outside" type="button" uk-close></button>
            <video src="https://yootheme.com/site/images/media/yootheme-pro.mp4" width="1920" height="1080" controls playsinline uk-video></video>
        </div>
    </div>
    
    <div id="modal-media-youtube" class="uk-flex-top" uk-modal>
        <div class="uk-modal-dialog uk-width-auto uk-margin-auto-vertical">
            <button class="uk-modal-close-outside" type="button" uk-close></button>
            <iframe src="https://www.youtube-nocookie.com/embed/c2pz2mlSfXA" width="1920" height="1080" loading="lazy" uk-video uk-responsive></iframe>
        </div>
    </div>
    
    <div id="modal-media-vimeo" class="uk-flex-top" uk-modal>
        <div class="uk-modal-dialog uk-width-auto uk-margin-auto-vertical">
            <button class="uk-modal-close-outside" type="button" uk-close></button>
            <iframe src="https://player.vimeo.com/video/1084537" width="1280" height="720" loading="lazy" uk-video uk-responsive></iframe>
        </div>
    </div>

グループ

一方から他方へと、そして戻るようにリンクすることにより、複数のモーダルをグループ化できます。これを使用して、モーダル内に複数ステップのウィザードを作成します。

<div id="modal-group-1" uk-modal>
    <div class="uk-modal-dialog">
        <a href="#modal-group-2" uk-toggle>Next</a>
    </div>
</div>

<div id="modal-group-2" uk-modal>
    <div class="uk-modal-dialog">
        <a href="#modal-group-1" uk-toggle>Previous</a>
    </div>
</div>
  • モーダル1 モーダル2

  • <p uk-margin>
        <a class="uk-button uk-button-default" href="#modal-group-1" uk-toggle>Modal 1</a>
        <a class="uk-button uk-button-default" href="#modal-group-2" uk-toggle>Modal 2</a>
    </p>
    
    <div id="modal-group-1" uk-modal>
        <div class="uk-modal-dialog">
            <button class="uk-modal-close-default" type="button" uk-close></button>
            <div class="uk-modal-header">
                <h2 class="uk-modal-title">Headline 1</h2>
            </div>
            <div class="uk-modal-body">
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
            </div>
            <div class="uk-modal-footer uk-text-right">
                <button class="uk-button uk-button-default uk-modal-close" type="button">Cancel</button>
                <a href="#modal-group-2" class="uk-button uk-button-primary" uk-toggle>Next</a>
            </div>
        </div>
    </div>
    
    <div id="modal-group-2" uk-modal>
        <div class="uk-modal-dialog">
            <button class="uk-modal-close-default" type="button" uk-close></button>
            <div class="uk-modal-header">
                <h2 class="uk-modal-title">Headline 2</h2>
            </div>
            <div class="uk-modal-body">
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
            </div>
            <div class="uk-modal-footer uk-text-right">
                <button class="uk-button uk-button-default uk-modal-close" type="button">Cancel</button>
                <a href="#modal-group-1" class="uk-button uk-button-primary" uk-toggle>Previous</a>
            </div>
        </div>
    </div>

コンポーネントオプション

これらのオプションは、コンポーネント属性に適用できます。複数のオプションはセミコロンで区切ります。詳細はこちら

オプション デフォルト 説明
esc-close ブール値 true Escキーが押されたときにモーダルを閉じます。
bg-close ブール値 true 背景がクリックされたときにモーダルを閉じます。
stack ブール値 false 複数のモーダルが開いている場合、モーダルをスタックします。デフォルトでは、前のモーダルは非表示になります。
container 文字列 true セレクターを介してターゲットコンテナを定義して、モーダルをDOMのどこに付加するかを指定します。falseに設定すると、この動作が無効になります。
cls-page 文字列 uk-modal-page モーダルがアクティブなときに<html>に追加するクラス
cls-panel 文字列 uk-modal-dialog モーダルのパネルと見なされる要素のクラス
sel-close 文字列 .uk-modal-close, .uk-modal-close-default, .uk-modal-close-outside, .uk-modal-close-full モーダルの閉鎖をトリガーするすべての要素のCSSセレクター

JavaScript

JavaScriptコンポーネントの詳細をご覧ください。

初期化

UIkit.modal(element, options);

イベント

このコンポーネントがアタッチされている要素で、次のイベントがトリガーされます

名前 説明
beforeshow アイテムが表示される前に発生します。
show アイテムが表示された後に発生します。
shown アイテムの表示アニメーションが完了した後に発生します。
beforehide アイテムが非表示になる前に発生します。
hide アイテムの非表示アニメーションが開始された後に発生します。
hidden アイテムが非表示になった後に発生します。

メソッド

コンポーネントでは次のメソッドを使用できます

表示

UIkit.modal(element).show();

モーダルを表示します。

非表示

UIkit.modal(element).hide();

モーダルを非表示にします。


コンポーネントには、ユーザーインタラクションに使用できる、いくつかの準備済みモーダルダイアログが付属しています。JavaScriptからダイアログを直接呼び出し、コールバック関数を使用してユーザー入力を処理できます。

コード 説明
UIkit.modal.alert('UIkitアラート!') ボタンが1つあるアラートボックスを表示します。
UIkit.modal.confirm('UIkit確認!') メッセージと2つのボタンを含む確認ダイアログを表示します。
UIkit.modal.prompt('名前:', 'あなたの名前') テキスト入力を求めるダイアログを表示します。
UIkit.modal.dialog('<p>UIkitダイアログ!</p>'); 任意のHTMLコンテンツを含むダイアログを表示します。

ユーザー入力を処理するために、モーダルはpromiseベースのインターフェースを使用します。このインターフェースは、コールバック関数を登録するためのthen()関数を提供します。ただし、UIkit.modal.dialog関数はモーダル自体を返します。

UIkit.modal.confirm('UIkit confirm!').then(function() {
    console.log('Confirmed.')
}, function () {
    console.log('Rejected.')
});

返されたpromiseには、モーダル自体への参照を保持するプロパティdialogがあります。これにより、たとえばモーダルの要素のマークアップを操作できます。

ボタンラベルを翻訳するために、ダイアログ関数はオプションのoptionsオブジェクトパラメータを受け入れます。これには、キーi18nと2つのプロパティokcancelがあります。

const modal = UIkit.modal.confirm('UIkit confirm!', {i18n: {ok: 'okay'}}).dialog; // The modal component
const el = modal.$el; // The modal element
  • ダイアログ アラート 確認 プロンプト

  • <p uk-margin>
    
        <a id="js-modal-dialog" class="uk-button uk-button-default" href="#">Dialog</a>
    
        <a id="js-modal-alert" class="uk-button uk-button-default" href="#">Alert</a>
    
        <a id="js-modal-confirm" class="uk-button uk-button-default" href="#">Confirm</a>
    
        <a id="js-modal-prompt" class="uk-button uk-button-default" href="#">Prompt</a>
    
        <script>
    
           UIkit.util.on('#js-modal-dialog', 'click', function (e) {
               e.preventDefault();
               e.target.blur();
               UIkit.modal.dialog('<p class="uk-modal-body">UIkit dialog!</p>');
           });
    
           UIkit.util.on('#js-modal-alert', 'click', function (e) {
               e.preventDefault();
               e.target.blur();
               UIkit.modal.alert('UIkit alert!').then(function () {
                   console.log('Alert closed.')
               });
           });
    
           UIkit.util.on('#js-modal-confirm', 'click', function (e) {
               e.preventDefault();
               e.target.blur();
               UIkit.modal.confirm('UIkit confirm!').then(function () {
                   console.log('Confirmed.')
               }, function () {
                   console.log('Rejected.')
               });
           });
    
           UIkit.util.on('#js-modal-prompt', 'click', function (e) {
               e.preventDefault();
               e.target.blur();
               UIkit.modal.prompt('Name:', 'Your name').then(function (name) {
                   console.log('Prompted:', name)
               });
           });
    
        </script>
    
    </p>

アクセシビリティ

モーダルコンポーネントは、ダイアログ(モーダル)WAI-ARIA設計パターンに準拠し、適切なWAI-ARIAの役割とプロパティを自動的に設定します。

閉じるコンポーネントは、適切なWAI-ARIAの役割とプロパティを自動的に設定します。

キーボード操作

モーダルコンポーネントには、次のキーを使用してキーボードからアクセスできます。