UI デザイナーの素敵な側面は、ページのスタイルを CSS ファイルで設定できるWEB技術の優位性を享受できる点です。
このチュートリアルでは、あなただけの CSS を使用してモーダルウィンドウを構築する方法について説明します。
一部のコンテンツを作成することを始めましょう。
あなたはモーダルになるコンテナと、その上にそのモーダルが表示されるいくつかの他のコンテンツが必要になります。
他のすべての要素のトップにコンテナを表示する
次の内容の CSS ファイルを作成します。
.Modal-content {
position: absolute;
width: 80%;
left: 0;
right: 0;
margin: 5% auto;
background-color: #fff;
border-radius: 2px;
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
padding: 2em;
}
使用するクラスの名前は、BEM の方法論に従うことに注意してください。
BEMまたは他の構造的な命名規則は、このような責任の分離、再利用性、名前の衝突回避など多くの優れた実践を強制します。
UI デザイナーでそのファイルを使用するには、ページのアセットとしてそのファイルをアップロードする必要があります。
そのためには、あなたのページを開き、「Assets」に移動し、画面下部の「新規アセットを追加」をクリックします。
タイプを「CSS」、ソースを「Local」に選択し、あなたの CSS ファイルをアップロードします。
これで、ページに追加され、すべてのクラスが任意の要素の「CSS クラス」プロパティからアクセスが可能になります。
さて、コンテナの「CSS クラス」プロパティに「Modal-content」を追加しましょう。
プレビューボタンをクリックして結果を確認します。
あなたの CSSファイルで作業しますが、もう1つの方法として、ローカルサーバーを使用して、そのローカルな CSSファイルを提供することができます。
それには、ファイルをアップロードする代わりにファイルを指す外部(External)の CSS アセットを追加します。これは大幅に開発をスピードアップします。
本番環境では、そのファイルを CSS アセットとして常時アップロードされた状態にする必要があります。
下部の要素がアクセスできないようにオーバーレイを追加する
新しいコンテナをオーバーレイのコンテナとしてトップに追加し、「Modal-content」のコンテナを追加したオーバーレイのコンテナに移動します。
CSS ファイルに次のコードを追加します。
.Modal-overlay {
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, .4);
z-index: 1;
}
そして、オーバーレイのコンテナに「Modal-overlay」クラスを追加する必要があります。
モーダルをコントロールする
UI デザイナーでモーダルを表示する方法とタイミングに関しては、多くのアプローチがありますが、ここでは、複数のモーダルにうまく対応できる方法を紹介します。
モーダルウィンドウを開く
モーダルのコンテナを作成したので、次にそれを表示する際の制御を埋め込む必要があります。
「modals」という配列の JSON 変数を作成することによって開始します。
まず、「Variables」に移動し画面下部の「新規変数を作成」をクリックします。
名前を「modals」、タイプを「JSON」、値を「[]」にします。これは空の配列になります。
次に「Modal-overlay」のコンテナの「コレクション」プロパティに「modals」変数をバインドします。
この配列が空であるときはいつでも、モーダルを隠す効果を持っています。
また、「modals」の配列にオブジェクトを追加した場合は、新しいモーダルを表示します。
このチュートリアルでは、ボタンを使用してそれを行います。
「Open」ボタンを追加し、そのボタンの「アクション」プロパティを「コレクションに追加」に設定し、次に「コレクション」プロパティに「modals」変数をバインドしましょう。
プレビューを使用して「Open」ボタンのアクション結果を確認することができます。
[OK] ならモーダルウィンドウを閉じる
モーダルに対しダイレクトに応答することは、それを閉じることです。
以前の方法では、ボタンウィジェットで別のアクションを使用することができましたが、ここでは新しい方法を紹介します。
まず、モーダルに「Close」ボタンを追加し、そのボタンの「アクション」プロパティを「コレクションから削除」に設定します。
その後、「modals」変数を「コレクション」プロパティにバインドします。
オブジェクトが削除されることを定義する必要があるので、「削除」プロパティで「項目」を選択し、「削除する項目」プロパティに「$item」変数を追加することでこれを行うことができます。
ここの「$item」がコンテナの繰り返されるコンテキストにあるので、利用可能です。
完成したあなたのデザインページは次のようになります。
このチュートリアルの実行結果は次のとおりです