ユーザー入力が送信されるときに動的に再読み込みされるテキストエリアがあります。数秒ごとに更新されます。このtextarea内のテキストの量がtextareaのサイズを超えると、スクロールバーが表示されます。ただし、スクロールバーは実際には使用できません。下にスクロールを開始すると、数秒後にテキスト領域が更新され、スクロールバーが一番上に戻ります。スクロールバーをデフォルトで最下部のテキストを表示するように設定します。誰かがそうする方法についてのアイデアを持っていますか?
回答:
これをjQueryで使用できます
$(document).ready(function(){
var $textarea = $('#textarea_id');
$textarea.scrollTop($textarea[0].scrollHeight);
});
私は同じ問題を抱えていて、正しいスクロール動作を得るために最初に設定できる属性がないことを発見しました。ただし、textAreaでテキストが更新されると、同じ関数の直後にfocus()をtextAreaに設定して、テキストを下にスクロールさせることができます。次にfocus()
、他の入力フィールドを呼び出して、ユーザーがそのフィールドに入力できるようにします。これは魅力のように機能します:
function myFunc() {
var txtArea = document.getElementById("myTextarea");
txtArea.value += "whatever"; // doesn't matter how it is updated
txtArea.focus();
var someOtherElem = document.getElementById("smallInputBox");
someOtherElem.focus();
}