速報

imgproxyのICO処理にコード実行のおそれ|4.0.16だけでは残る問題を確認

CATEGORY

【JavaScript】textareaの入力内容で高さを自動調整する

※本ページのリンクにはプロモーションが含まれています。

【JavaScript】textareaの入力内容で高さを自動調整する

目次

本記事では、JavaScriptでtextareaの入力内容で高さを自動調整する方法をご紹介しています。

textareaの高さを自動調整したいんだけど、どうすればいいんだろう?

上記の疑問にお答えします。

では、解説していきます。

スポンサーリンク

本記事で作成するもの

本記事の内容で完成するものがこちら!textareaに値を入力していくと、スクロールバーが表示される行数になった場合にtextareaの高さが自動的に調整されるようになっています。実際に操作してみてください。

See the Pen 6153 by ryohei (@intotheprogram) on CodePen.

注意点としては、textareaの高さを右下の角からマウス等でリサイズすると、幅は維持できますが高さは入力内容に応じて自動で調整されます。その点だけご認識ください。

では、作成していきましょう!

textareaの要素を作成する

HTMLでtextareaを作成します。本記事では要素が取得しやすいようにidを指定しています。フォーム等で使用する場合はformsプロパティなどで取得できるかと思います。

HTML

<textarea id="textarea"></textarea>

スポンサーリンク

textareaのスタイルを定義する

作成したtextareaにCSSでスタイルを定義します。本記事ではCSS側でtextareaの高さを指定していますが、textareaのrows属性に行数を指定していただいても大丈夫です。お好みな方法でご利用ください。右下の角のリサイズアイコンがいらない場合は、resize: none;を追記すると幸せになれます。

CSS

textarea {
    width: 100%;
    height: 75px;
}

textareaの高さを自動調整する処理を作成する

最後にJavaScriptでtextareaの入力内容によって高さを自動調整する処理を作成します。スクリプトの内容はコメントに記載していますので、参考にしていただければ!

ちなみに8行目で実行している高さの再設定を外すとtextareaのinputイベントが発生するたびに高さが増えていくのでご注意ください。

JS

//textareaの要素を取得
let textarea = document.getElementById('textarea');
//textareaのデフォルトの要素の高さを取得
let clientHeight = textarea.clientHeight;

//textareaのinputイベント textarea.addEventListener('input', ()=>{ //textareaの要素の高さを設定(rows属性で行を指定するなら「px」ではなく「auto」で良いかも!) textarea.style.height = clientHeight + 'px'; //textareaの入力内容の高さを取得 let scrollHeight = textarea.scrollHeight; //textareaの高さに入力内容の高さを設定 textarea.style.height = scrollHeight + 'px'; });

以上でtextareaの高さを自動調整する処理の作成は完了です!

スポンサーリンク

最後に

本記事の内容は先日携わった案件で実装することになった処理と同様のものになります。textareaはユーザー側で好きなようにリサイズできるので、基本的にはあまり必要ないかな、と思います。ただ入力内容全体を視認できるようにしたい場合はとても有効な方法ですので、クライアントと話し合って決めていただければと思います。

以上、JavaScriptでtextareaの入力内容で高さを自動調整する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク