5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

文字数に応じて textarea を自動的にリサイズする #JavaScript #HTML5

Last updated at Posted at 2016-12-02

TL;DR

雑な感じだが、これで出来る。
文字数が減ったときの対応は、入れていないのであしからず。

<textarea id="area"></textarea>
document.getElementById('area').addEventListener('input', function(event) {
  event.target.offsetHeight < event.target.scrollHeight ? event.target.style.height = event.target.scrollHeight+'px' : nil;
});

追記

同僚からあまりにも雑すぎるwと意見を頂いたので、簡単な解説をば。

  1. 対象のテキストエリアに input でのイベントを仕込みます。
  2. offset の高さと、 scroll の高さを比較します。
  3. scroll の高さの方が高い場合は、対象のテキストエリアの高さを scroll の高さにします。

以上です。
Vanilla JS で書いてますが、お好きなライブラリ使えばもっと簡単になると思います。

文字が減ったときもちゃんとリサイズしたい!

入力内容の量に応じたtextareaの自動サイズ変更 - Qiita
こちらの記事で対応されているようです。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?