from :: Asahikawa Hokkaido

passer-by198

primetime pencil

2012/07/21


Posted

「jQuery」と「jQuery UI」で HTML に彩りを添えよう…第7回「Dialog」ボタンクリックでコンテンツをポップアップ

概要


「Dialog」公式ページ
jQuery UI Documentation / API / 1.8 / Dialog  


「Dialog」についての「Demos & Documentation」
jQuery UI Demos & Documentation / Dialog  



ダイアログボックスは…ブラウザの「親ウィンドウ」内に…

「説明」「拡大画像」「埋め込み動画」…などなどの…

「子ウインドウ」を…ページ読み込みタイミングや…

「テキストリンク」「ボタン」「サムネイル画像」などの…

「マウスホバー」や「クリック」でポップアップ表示させる…

…ってな感じの…お便利機能です…

ウインドウ標準などのカスタマイズされていない「ツールチップ」と違い…

テキストのコピーもできますし…「親ウィンドウ」内の…

お好きな場所に移動もできます…表示方法を大別すると…

「親ウィンドウ」を操作できるようにそのままでポップアップ…と…

「親ウィンドウ」を操作できないように…

「親ウィンドウ」にオーバーレイ処理をしてポップアップ…

…の…2種類です…更には…

「子ウインドウ」にも「親ウィンドウ」と同等の機能を盛り込む事ができます…

…ので…導入にあたっては事前に「子ウインドウ」に導入したい機能の…

過去記事のカスタムコードも設定しておいて下さい…




それでは…いつものように…

違和感を覚え変更した点を書き出してみましょう…


  1. 「minWidth」や「minHeight」がデフォルトなのでテキスト量によっては無駄なスペースが生じますので「minHeight」を「false」と設定します…
  2. 日本語環境ではダイアログのリサイズは不要でしょう…改行や全角スペースでテキスト量を調整するのが良いでしょう…
  3. タイトルが左寄せなので…中央揃えに変更します…
  4. 下部にボタンを生成する設定の場合⑤の様な気持悪いスペースが生じますので…「最後まで読んでくれてありがとう」的なメッセージを表示させ…更に「Close」ボタンにアイコンも追加します…
  5. 横幅のデフォルトが「300px」なので「width」を「auto」と設定します…
  6. 「modal」でダイアログを表示させる設定の場合「overlay」がデフォルトですが…「overlay」の色が気に入らないので変更し…更には…「overlay」の領域のクリックでもダイアログを閉じられるようにします…
  7. タイトルバーの閉じるアイコンの位置がタイトル幅とテキスト幅の関係で被る場合があるので…タイトルバーの右上に変更します…
  8. ダイアログで表示したいコンテンツの分だけダイアログが必要なので…お好みですが…「id」は「class」に変更します…

「Dialog」用のカスタムコードと「CSS」


それでは…「Dialog」用のカスタムコードです…

一部 CSS を記述していますが気にしない方向で…

「Dialog」用のカスタムコード



ご自身のサイトで使用するダイアログの数だけ…

ダイアログやトリガーを固有の「id」や「class」で指定します…

必要に応じて増減して下さい…

続いて…「Dialog」用の CSS 共通設定です…

「Dialog」用の CSS



お好みで適宜変更して下さい…上記…カスタムコードと CSS を導入すると…

こんな感じのダイアログが使えます…

サンプルと「HTML」マークアップ


モーダルウインドウ無し


先ずは…モーダル無しのパターン5種類です…

「dialog1」
ボタンクリックでテキストをポップアップ表示します…
テキストはダミーテキストです…
第2回「Button」のカスタムコードも必要です…
 Example Dialog / Text

上記…「dialog1」の HTML マークアップ
「dialog1」の HTML マークアップ



「dialog2」
ボタンクリックで画像をポップアップ表示し…
ポップアップした画像をクリックすると画像情報がスライド表示されます…
第2回「Button」第5回「Effects/Slide」のカスタムコードも必要です…
 Example Dialog / Image &「Effects/Slide」

上記…「dialog2」の HTML マークアップ
「dialog2」の HTML マークアップ



「dialog3」
ボタンクリックで「Accordion」と「Tabs」を…
「Progressbar」で区切って表示します…
第2回「Button」第3回「Accordion」第4回「Tabs」第6回「Progressbar」
…のカスタムコードも必要です…
 Example Dialog / 「Tabs」&「Progressbar」&「Accordion」

上記…「dialog3」の HTML マークアップ
「dialog3」の HTML マークアップ



「dialog4」
ボタンクリックで動画のサムネイル画像とテキストを表示し…
サムネイル画像をクリックすると埋め込み動画がスライド表示されます…
第2回「Button」第5回「Effects/Slide」のカスタムコードも必要です…
 Example Dialog / Video &「Effects/Slide」

上記…「dialog4」の HTML マークアップ
「dialog4」の HTML マークアップ



「dialog5」
ダイアログを表示させるトリガーを変えてみましょう…
テキストかサムネイル画像のクリックで埋め込み動画が表示されます…
Google Chrome, Japan 「トリガー」

上記…「dialog5」の HTML マークアップ
「dialog5」の HTML マークアップ



モーダルウインドウ有り


続いて…モーダル有りのパターン2種類です…

「dialog0」
ボタンクリックでテキストが「親ウィンドウ」をオーバーレイして表示されます…
オーバーレイのクリックでもダイアログを閉じる事ができます…
下部にボタンパネルが生成され…
「最後まで読んでくれてありがとう」的なメッセージと「Close」が…
ボタン化して…どちらのボタンをクリックしてもダイアログか閉じます…
サンプルはダミーテキストですが…
しっかりしたメッセージなどを表示したい場合にお使い下さい…
サイトで実装していますので…トップページなどでもご確認いただけます…
 Example Modal Dialog / Text「add Button Panel」

上記…「dialog0」の HTML マークアップ
「dialog0」の HTML マークアップ



「dialog-video」
クリックで埋め込み動画が表示されるのは「dialog5」と同様ですが…
埋め込み動画をポップアップさせる場合…
タイトルバーは下部に置いたほうが「しっくりきそう」だったので…
お遊びで作ってみました…
 Example Modal Dialog / video 「Title Position : bottom」

上記…「dialog-video」の HTML マークアップ
「dialog-video」の HTML マークアップ



もう少し解説


尚…ボタンタイプのトリガーでは…

ポップアップ表示される事をイメージしてもらうために…

独自アイコンを CSS Sprites で表示させていますが…

 Tonttu/テンプレート編集に必須な「CSS Sprites」作成ツールの使い方と「HTML」マークアップ


 Google Bloggerで絵文字を使うためのTips【CSS Sprites 編】



「jQuery UI」のデフォルトアイコンを使用するには…

第2回「Button」を参照して下さい…

サンプル作成はしませんでしたが…

トリガー無しで…ページ読み込みタイミングで…

ダイアログを表示したい場合は…

カスタムコードの…

「トリガー部分」と「autoOpen:false,」を削除して下さい…

「show」と「hide」のエフェクトには…

「clip」を指定していますが…変更したい方は…

jQuery UI Demos & Documentation / Effect  


…のプルダウンメニューで…動作確認して…

カスタムコードのエフェクト名を変更して下さい…

おわりに…


以上ですが…ダイアログの…ご自身のサイトでの使い所をイメージして…

色々と組み合わせて…独自のダイアログを構築する事を…お奨めします…

お疲れ様でした……最後までお読みいただきましてありがとうございます…

こちらの記事も…お薦めです…

 jQuery UI Extra-5 : HTML要素のマウスホバー時に光源がカーソルに追従するエフェクト


 「CSS3」の「text-shadow」を使ってトップページだけ違うデザインにする







0 Comments :

「jQuery」と「jQuery UI」で HTML に彩りを添えよう…


「導入」「Button」「Accordion」「Tabs」「Effects/Slide」
「Progressbar」「Dialog」「Tooltip」「Menu」
「Extra」 / 公式「Widgets」以外の「jQuery UI」スクリプト
Blogger Template Customize Universal / INDEX

Blogger テンプレート・カスタマイズ / 全般を解説
高速化・最適化対策の結果と備忘録