textareaをheight=100%でスクロールしないようにしたい。
htmlのtextareaをコンテンツの高さに合わせたくて調査したときの覚書。
環境: jQuery 3.5.1
CSSのheight: 100%は親要素に合わせてしまう。
textareaの内包している値を全部見えるようにしてスクロールしないようにしたい。
結局JavaScriptでtextareaの内部コンテンツの高さを取得して設定する必要があった。
jQueryを使うとこんな感じ。
jQuery(function($) {let $textarea = $('#textarea-id');$textarea.on('keyup', function() {$textarea.height('auto'); // Initialize$textarea.height($textarea.prop('scrollHeight') - $textarea.height());});});
CSS
textarea {overflow: hidden;resize: none;padding: 12px 16px;}
スマホの場合は実行しない方がいいかもしれない。