我有一个textarea,我将数据附加到textarea.value += "more text\n";
,我希望它“保持”滚动到底部,所以它总是会显示最后一行。
我读过我应该这样做:
var textarea = document.getElementById('textarea_id');
textarea.scrollTop = textarea.scrollHeight;
但是我试过了(http://jsfiddle.net/BenjiWiebe/mya0u1zo/),我无法让它发挥作用。
我做错了什么?
答案 0 :(得分:16)
每次附加文字时都需要设置scrollTop
:
var textarea = document.getElementById('textarea_id');
setInterval(function(){
textarea.value += Math.random()+'\n';
textarea.scrollTop = textarea.scrollHeight;
}, 1000);
答案 1 :(得分:0)
要回答最初的问题:由于您的字符串输出以换行符结尾,因此应在输出之前滚动,而不是在滚动之后滚动(我将id保留在名为id的对象中):
function Output(Msg)
{
...
id.Log.scrollTop=id.Log.scrollHeight;
SetValue('Log',out);
}