入力すると消えてしまうinputタグのplaceholderを見やすくするjQuery+css3でつくるフローティングラベル
jQuery関連記事
【jQuery】pdfが存在するか、mimeタイプのバリデーションする
jQuery UIのsortableを使ってリストをドラッグで並び替える
jQueryのモーダルウィンドウを使ってフォームの確認画面を実装する
HTMLのcanvasタグとJavaScriptで円グラフの画像をつくる
bxSliderをカルーセルやコンテンツスライダーなど便利なサンプル5種
bxSliderの使い方と、オプションでのカスタマイズ方法
select・optionタグをjQueryで、プルダウンの選択値を取得、変更する
jQueryでinput[type="file"]で画像アップロード時にプレビューを表示する
jQueryでrequiredの専用エラー文と文字数制限のバリデーションをつくる
サンプルを用意しました。
メールフォームサンプル
ユーザビリティ向上のためのメールフォームサンプルです。
html
html
<ul class="inputcolor"> <li class="field"> <label class="label" for="input-email">メールアドレス</label> <input class="input_t" id="input-email" type="email" placeholder="メールアドレス"> </li> </ul>
label
の中に入力中に表示したい項目名を入れます。placeholder
の内容と同じにしてしまって問題ないと思います。
jQuery
JavaScript
$('.input_t').on('input', function() { var $field = $(this).closest('.field'); if (this.value) { $field.addClass('not-empty'); } else { $field.removeClass('not-empty'); } });
対象のフォームに入力されたら、closest
で一番近い、.field
にクラスを付けたり外したりします。
あとはクラスの有無でcssを変更するだけ。
css
css
.label { color: #999; font-size: 12px; opacity: 0; padding: 4px 10px; pointer-events: none; position: absolute; text-overflow: ellipsis; text-align: left; -webkit-transform: translateY(3px); transform: translateY(3px); -webkit-transition: all .2s ease-out; transition: all .2s ease-out; } .not-empty .label { opacity: 1; -webkit-transform: none; transform: none; } .input_t { background-color: #f5f5f5; border: 2px solid #e9e9e9; color: #333; font-size: 22px; padding: 10px; -webkit-transition: all .2s ease-out; transition: all .2s ease-out; width: 100%; } .not-empty .input_t { padding-bottom: 2px; padding-top: 18px; }
JavaScriptで.not-empty
がついた場合に、opacity
やフォーム側のpaddingやfont-sizeを変更して表示します。
あとはcssをアレンジすればオリジナルのフローティングラベルが作れますね!
コメント