jQuery UIでModal Dialog(モーダルダイアログ)を表示する方法

jQuery UIでModal Dialog(モーダルダイアログ)を表示する方法

サンプル

はじめまして。ようこそこのサイトへ。詳しい自己紹介についてはこちらをご覧ください。

今回は「jQuery UI の ダイアログ(Dialog)を紹介します。

ホームに戻る。モーダルダイアログ表示時、クリックできません

HTMLコード

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8">
   <title>jQuery UI Dialog demo</title>
   <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
   <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
   <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
   <script>
      var dialog1;
      var dialog2;
      $( function() {
         dialog1 = $( "#dialog" ).dialog({
            autoOpen: false,
            modal:true,
            draggable:true,
            height: 400,
            width: 350,
           resizable:true,
           closeText:"トジル",
            buttons: [
               {
                  text: "閉じる",
                  icon: "ui-icon-heart",
                  click: function() {
                     $( this ).dialog( "close" );
                  }
               }
            ],
            show: {
               effect: "blind",
               duration: 1000
            },
            hide: {
               effect: "explode",
               duration: 1000
            }
         });
         $( "#opener" ).on( "click", function() {
            $( "#dialog" ).dialog( "open" );
         });
         dialog2 = $( "#dialog2").dialog({
            draggable:false,
            modal: true,
            title: "jQuery UI Dialog",
            buttons: {
               "OK": openDialog1,
               "キャンセル": function() {
                  dialog2.dialog( "close" );
               }
            },
         });
      } );
      function openDialog1() {
         dialog2.dialog( "close" );
         dialog1.dialog("open");
      }
   </script>
</head>
<body>
   <div id="dialog" title="確認(タイトル)">
      <p>はじめまして。ようこそこのサイトへ。詳しい自己紹介については<a href="./">こちら</a>をご覧ください。</p>
   </div>
   <button id="opener">開く</button>
   <div id="dialog2">
      今回は「jQuery UI の ダイアログ(Dialog)を紹介します。
   </div>
    
   <p>
      <a href="/">ホームに戻る。モーダルダイアログ表示時、クリックできません</a>
   </p>
</body>
</html>

デモ

jQuery UI Dialog Widget

オプション

いくつかオプションを紹介しておきます。

autoOpen

「true」にすると初期表示時に自動的にダイアログが開きます。デフォルトは「false」です。

buttons

ボタンを設定する場合の、オプションとなります。

二つのタイプを指定できます。

Array型ボタンに設定する属性やプロパティ、処理などを定義できます。
text:ボタンラベル
icon:ボタンにつけらえるアイコン定義(「icons」参照)
click:クリック時の処理や関数をしてできます。
Object型ボタンのラベルとクリック時の処理を合わせて定義できます。
例)
“OK”: openDialog1,
“キャンセル”: function() {
dialog2.dialog( “close” );
}

classes

ダイアログのCSSクラス定義が可能です。

デフォルトは


{
  "ui-dialog": "ui-corner-all",
  "ui-dialog-titlebar": "ui-corner-all",
}

です

closeOnEscape

true」にすると、ダイアログ表示時「Esc」キーを押すと、ダイアログが閉じられます。

デフォルトは「true」です。

closeText

ダイアログの右上の✖記号の代替テキストになります。よって、マウスポイントを乗せた時に初めて表示されるもので、常に表示される文字列ではありません。

draggable

true」にすると、ダイアログをドラッグさせることができます。

デフォルトは「true」です。

height

ダイアログの高さをピクセルで指定できます。

デフォルトは「auto」という文字列で自動的に調整する設定となっています。

hide

ダイアログが閉じる際の、効果などをしているオプションになります。指定する型は四つになります。

Boolean型「false」を指定すると閉じる際の効果なしとなります。
「true」にすると、デフォルトの時間でツールチップがフェードアウトします。
このオプションのデフォルトは「true」です。
Number型指定された時間でフェードアウトします、指定するのはミリ秒
String型 ツールチップが閉じる際の効果を指定します、指定できるのは以下の文字列
slideUp
または、「jQuery UI effect」のEffect文字列
blind
bounce
clip
drop
explode
fade
fold
highlight
puff
pulsate
scale
shake
size
slide
transfer
Object型effect」「delay」「duration」「easing」の4つのプロパティを配列で指定できます。
effect :『String型』の指定のように、効果を文字列で指定できます。
delay:効果開始までの時間(ミリ秒)
duration:効果の継続時間(ミリ秒)
easing:効果のスピードや動き方を定義するプロパティ。詳細はこちらの「Easings」を参照ください。実際には「linear」や「swing」などを指定してください。

maxHeight

リサイズできるダイアログがの最大高さをピクセルで定義できます。

デフォルトは「false」です。

maxWidth

リサイズできるダイアログがの最大幅をピクセルで定義できます。

デフォルトは「false」です。

minHeight

リサイズできるダイアログがの最小高さをピクセルで定義できます。

デフォルトは「150」。

minWidth

サイズできるダイアログがの最小幅をピクセルで定義できます。

デフォルトは「150」。

true」にすると、ダイアログ表示時、モーダル状態になり、ほかのオブジェクトは無効化され、操作することができなくなります。

デフォルトは「false」。

position

ダイアログを表示する位置を定義できます。

jQuery UI Position」の定義方法で指定します。

デフォルトは、

{ my: "center", at: "center", of: window }

です。

resizable

true」にすると、ダイアログウインドウの大きさを変えることができるようになります。

デフォルトは「true」です。

show

ダイアログを開く際の、効果などを指定するオプションになります。指定する型は四つになります。

Boolean型「false」を指定すると開く際の効果なしとなります。
「true」にすると、デフォルトの時間でタブがフェードインします。
Number型指定された時間でフェードインします、指定するのはミリ秒
String型 タブを開く際の効果を指定します、指定できるのは以下の文字列
slideDown
または、「jQuery UI effect」のEffect文字列
blind
bounce
clip
drop
explode
fade
fold
highlight
puff
pulsate
scale
shake
size
slide
transfer
Object型effect」「delay」「duration」「easing」の4つのプロパティを配列で指定できます。
effect :『String型』の指定のように、効果を文字列で指定できます。
delay:効果開始までの時間(ミリ秒)
duration:効果の継続時間(ミリ秒)
easing:効果のスピードや動き方を定義するプロパティ。詳細はこちらの「Easings」を参照ください。実際には「linear」や「swing」などを指定してください。

title

ダイアログのタイトル領域の文字列を定義するオプションです。

デフォルトは「NULL」で、対象オブジェクトのtitle属性の文字列になります。

width

ダイアログの幅をピクセルで定義できるオプションです。

デフォルトは「300」です。

ご参考

関連ページ