JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptでアラートボックスの幅と高さを設定する方法

標準の alert() メソッドで表示されるアラートボックスは、ブラウザが描画するネイティブなダイアログのため、CSSでサイズを変更することができません。幅や高さを自由に設定したい場合は、HTML・CSS・jQueryを組み合わせたカスタムアラートボックスを作成するのが一般的です。

カスタムアラートボックスは、<div> 要素をベースにCSSでスタイリングし、jQueryで表示・非表示を切り替えます。以下のコードでは、幅300px・高さ100pxのアラートボックスを実装しています。

実装例

<!DOCTYPE html>
<html>
   <head>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
      </script>
      <script>
         function functionAlert(msg, myYes)
         {
            var confirmBox = $("#confirm");
            confirmBox.find(".message").text(msg);
            confirmBox.find(".yes").unbind().click(function()
            {
               confirmBox.hide();
            });
            confirmBox.find(".yes").click(myYes);
            confirmBox.show();
         }
      </script>
      <style>
         #confirm
         {
            display: none;
            background-color: #F3F5F6;
            color: #000000;
            border: 1px solid #aaa;
            position: fixed;
            width: 300px;
            height: 100px;
            left: 50%;
            margin-left: -100px;
            padding: 10px 20px 10px;
            box-sizing: border-box;
            text-align: center;
         }
         #confirm button {
            background-color: #FFFFFF;
            display: inline-block;
            border-radius: 12px;
            border: 4px solid #aaa;
            padding: 5px;
            text-align: center;
            width: 60px;
            cursor: pointer;
         }
         #confirm .message
         {
            text-align: left;
         }
      </style>
   </head>
   <body>
      <div id="confirm">
         <div class = "message">This is a warning message.</div><br>
         <button class="yes">OK</button>
      </div>
      <input type="button" value="Click Me" onclick="functionAlert();" />
   </body>
</html>

コードのポイント

  • CSSによるサイズ指定#confirm セレクタに対して width: 300pxheight: 100px を指定することで、ボックスの大きさを自由にコントロールできます。
  • 画面中央への配置position: fixedleft: 50% を組み合わせることで、ダイアログを画面中央付近に固定表示しています。
  • box-sizing: border-box:paddingやborderを含めてサイズ計算されるため、指定した寸法どおりに表示されます。
  • jQueryによる表示制御functionAlert() 関数内でメッセージの差し替えとOKボタンのクリックイベントを処理し、show() / hide() でダイアログの表示を切り替えています。

このように自作のダイアログを使えば、デザインやサイズを完全に自由にカスタマイズできるため、サイトのUIに合わせたアラート表示が実現できます。モダンな開発では、BootstrapのModalや各種ダイアログライブラリを利用する選択肢もありますが、仕組みを理解するうえでこのシンプルな実装例は非常に参考になります。

  1. JavaScriptで画面の有効幅・有効高さを取得する方法(availWidth/availHeight)

    JavaScriptでは、window.screenオブジェクトを使うことで、ブラウザが動作している画面(ディスプレイ)に関するさまざまな情報を取得できます。その中でも、screen.availWidthとscreen.availHeightプロパティを使用すると、タスクバーなどのOSのインターフェース要素を除いた「実際に利用できる」画面の幅と高さを取得することが可能です。この記事では、それぞれのプロパティの特徴と使い方を、サンプルコード付きでわかりやすく解説します。画面の有効幅(availWidth)を取得するscreen.availWidthプロパティは、画面全体の幅からWindowsのタ

  2. AndroidでImageViewの幅と高さをプログラムで設定する方法【コード例付き】

    はじめにこの記事では、Androidアプリ開発において、ImageViewの幅(width)と高さ(height)をプログラム(Javaコード)から動的に設定する方法を解説します。XMLレイアウトだけでなく、コード上でサイズを制御したい場合に役立つテクニックです。手順1:新規プロジェクトの作成まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目を入力してプロジェクトを作成しましょう。手順2:activity_main.xmlにコードを追加次に、res/layout/activity_main.xmlに以下の