textareaの高さを自動でリサイズする方法
Q&A
Closed
解決したいこと
現在Go言語で掲示板の開発に取り組んでいます。
下の画像のように1行だけの投稿の時に、テキストの下に空白ができないようにしたいです。
発生している問題
現在以下のようなコードでテキストエリアの高さを内容によって変わるようにしています。
$(".thread-form").each(function(){
$('.thread-form').on('change keyup keydown paste cut', function(){
if ($(this).outerHeight() > this.scrollHeight){
$(this).height(1)
}
while ($(this).outerHeight() < this.scrollHeight){
$(this).height($(this).height() + 1)
}
});
一部省略していますが、テキストエリアは以下のコードで書いています。
<form role="form" action="" method="POST">
<textarea class="thread-form" name="content" id="thread-content" placeholder="ここにテキストを入力してね。(140字以内)">{{.Content}}</textarea>
</form>
.thread-form {
width: 100%;
height: auto;
display: block;
border-bottom: solid 1px black;
padding: 0.6% 0.6% 0 0.6%;
margin-bottom: 8px;
background-color: rgb(181, 255, 158);
}
自分で試したこと
以下のようにインナーの高さ、アウターの高さ、scrollHeight、cssで指定している高さを取得してheight()
で変えようとしてみましたが、高さが固定されており変更できませんでした。
var scrollHeight = $(".thread-form").get(0).scrollHeight;
var outerHeight = $(".thread-form").outerHeight();
var height = $(".thread-form").height();
var innerHeight = $(".thread-form").innerHeight();
var css = $(".thread-form").css('height');
0