Textarea自动滚动到底部

时间:2014-10-24 23:13:17

标签: javascript

我有一个textarea,我将数据附加到textarea.value += "more text\n";,我希望它“保持”滚动到底部,所以它总是会显示最后一行。

我读过我应该这样做:

var textarea = document.getElementById('textarea_id');
textarea.scrollTop = textarea.scrollHeight;

但是我试过了(http://jsfiddle.net/BenjiWiebe/mya0u1zo/),我无法让它发挥作用。

我做错了什么?

2 个答案:

答案 0 :(得分:16)

每次附加文字时都需要设置scrollTop

var textarea = document.getElementById('textarea_id');
setInterval(function(){
    textarea.value += Math.random()+'\n';
    textarea.scrollTop = textarea.scrollHeight;
}, 1000);

http://jsfiddle.net/mya0u1zo/2/

答案 1 :(得分:0)

要回答最初的问题:由于您的字符串输出以换行符结尾,因此应在输出之前滚动,而不是在滚动之后滚动(我将id保留在名为id的对象中):

function Output(Msg)
  {
  ...
  id.Log.scrollTop=id.Log.scrollHeight;
  SetValue('Log',out);
  }