ちょっと小細工:textareaの高さを自動調節
■元ネタ
元記事:textareaのサイズを入力にあわせて調整するJavaScript (イラストdeブログ開発記)■ソース
経由:404 Blog Not Found:javascript - 勝手に添削 - textareaの高さを自動調節
function initResizeTextarea(textarea) {
if (!textarea||textarea._initResizeTextarea_) return;
textarea._initResizeTextarea_=true;
var offset=textarea.scrollHeight-textarea.offsetHeight;
var lastLength=textarea.value.length, initRows=textarea.getAttribute('rows');
if (isNaN(initRows)) initRows=3;
if (!window.opera) {
textarea.onkeyup=function(){
var rows=textarea.getAttribute('rows');
if (textarea.value.length<lastLength) {
while (textarea.scrollHeight-textarea.offsetHeight<=offset) {
textarea.setAttribute('rows',--rows);
if (rows<=initRows) break;
}
}
while (offset<textarea.scrollHeight-textarea.offsetHeight) {
textarea.setAttribute('rows',++rows);
}
lastLength=textarea.value.length;
};
}
else {
textarea.onkeyup=function(){
var lines=textarea.value.split('\n');
var len=(initRows<lines.length)?lines.length:initRows;
textarea.setAttribute('rows',len);
};
}
} // end of initResizeTextarea()
</script>
<textarea cols="64" rows="4" onfocus="initResizeTextarea(this)">
イチ
に
三
</textarea>
ただし、Opera はscrollHeightの値が変化してくれないため、手動で入力した改行のみ対応で、オートラップには対応できていません。
2008/05/21(水) 01:53 | 固定リンク
| 記事の編集(管理者用)
「おもいつき」カテゴリの記事
- ちょっと小細工:textareaの高さを自動調節(2008.05.21)
- Yin and Yang:動作改善(?)他(2008.05.14)
- ノイズキャンセル(マスク|マイク)ってないのかな?(2008.05.07)
- 『はてブBOX』と、ココログ用『はてブコメント表示欄』スクリプトの更新(2008.05.05)
- Yin and Yang:リンク先の内容をその場で表示するスクリプトの更新(2008.05.02)
「パソコン・インターネット」カテゴリの記事
- ツールを作る側は対象に与える影響をどこまで気にするか?(2008.05.29)
- "『無断リンクはやめて』という人にはしない方向で"の思考過程(2008.05.24)
- 『無断リンクはやめて』という人にはしない方向で(2008.05.22)
- ちょっと小細工:textareaの高さを自動調節(2008.05.21)
- Yin and Yang:動作改善(?)他(2008.05.14)
「覚書」カテゴリの記事
- ちょっと小細工:textareaの高さを自動調節(2008.05.21)
- Google検索結果画面のHTML構造、変わりました?(2008.04.30)
- Googleの検索結果からH2タグが消える現象の原因(2008.05.03)
- 【JScript】ActiveXObject('htmlfile')で発生する不具合(2008.04.05)
- 【JavaScript】onmouseover/onmouseoutの振る舞い(2008.03.11)

