ホームページ作成/フォームの活用・装飾 (HTML,CSS,JavaScript)

未記入の入力フォームに案内画像を表示する(2ページ目)

入力フォーム内に何も入力されていないとき、フォームの内側に案内用の画像が表示されるようにしてみましょう。入力欄にカーソルが入ったら案内画像は消えるようにします。文字だけよりも凝ったデザインにできます。

西村 文宏

執筆者:西村 文宏

ホームページ作成ガイド

テキスト入力欄に案内画像を表示するソース

テキスト入力欄の内側に案内を画像で表示させるソースは、下記の通りです。 JavaScript部分は、HTMLファイル内のhead要素内に記述します。 HTML部分は、入力欄を掲載したい箇所に記述します。
※記事「入力フォームが空のときに入力案内を表示」でご紹介したソースと比較すると、分かりやすいかも知れません。

■JavaScript部分

<script type="text/javascript">
function ShowFormGuideImage(obj) {
   // 案内画像を表示
   if( obj.value == '' ) {
      obj.style.backgroundImage='url(searchbg.gif)';
   }
}
function HideFormGuideImage(obj) {
   // 案内画像を消す
   obj.style.backgroundImage = '';
}
</script>

■HTML・スタイルシート部分

<input type="text" size="30" value="" onFocus="HideFormGuideImage(this);" onBlur="ShowFormGuideImage(this);" style="background-image:url(searchbg.gif); background-repeat: no-repeat; background-position: left center; background-color:white; width:150px;">

■説明

上記のソースでは、表示する画像ファイル名は「 searchbg.gif 」になっています。ここには、実際に用意したファイル名を記述して下さい。 JavaScript部分とスタイルシート部分に1回ずつ記述していますので、同じ画像ファイルを記述します。

テキストの表示・非表示を切り替える前回の記事「入力フォームが空のときに入力案内を表示」では、valueプロパティの値を操作して表示内容を切り替え、colorプロパティの値を操作して表示色を切り替えました。 今回は、画像(背景画像)の表示・非表示を切り替えるだけなので、backgroundImageプロパティの値に、画像ファイル名を入れたり消したりするだけで実現できます。
※「backgroundImage」プロパティの「Image」の「I」だけは大文字です。

スタイルシート部分では、背景画像を表示させる background-imageプロパティのほか、背景画像の繰り返し方法を指定する background-repeatプロパティと、背景画像の表示位置を指定する background-positionプロパティを指定しています。 これは、記事「テキスト入力欄の内側にアイコンを表示する」で解説した通りです。

上記のソースを表示させると、以下のように見えます。
フォーム内部をクリックすると、画像が消えるはずです。(何も入力しないままフォーム外をクリックすれば再表示されます。)

何でも自由に様々な画像を用意して、試してみて下さい。

おわりに

今回は、テキスト入力欄が空のときに、案内を画像で表示させる「案内画像付きのテキスト入力欄」を作る方法をご紹介致しました。 ぜひ、ご活用下さい。

【関連記事】

【編集部おすすめの購入サイト】
Amazonでホームページ作成の参考書をチェック!楽天市場でホームページ作成関連の書籍をチェック!
  • 前のページへ
  • 1
  • 2
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます