Javascript/jQuery

textarea 가장 아래로 자동 scrolling 하기

hun.a 2017. 9. 4. 11:29
반응형

textarea를 콘솔처럼 사용하려고 해서 봤더니

기본적으로 textarea는 자동으로 가장 아래쪽으로 스크롤링을 하지 않는다.

데이터를 textarea로 계속 append하면 스크롤 위치는 계에에에속 맨 위에 고정되어 있다.

그럼, 이걸 어떻게 처리할 수 있을까?


HTML 코드는 다음처럼 심플하게 만들었다.

<input type='text' id='txt'></input>
<button id='btn'>click</button>
<br>
<textarea id='console' row='10'>
</textarea>


자 그 다음, button을 클릭하면 input에 있는 데이터를 textarea로 append 하는 스크립트를 작성해보자.
$('#btn').on('click', () => {
  const data = $('#txt').val();
  $('#console').append(`${data}\n`);
});


결과는...?

위에서 말한것과 같이 textarea의 스크롤이 꿈쩍도 안한다. 후후후...


이제 다음과 같이 스크립트를 수정해서 textarea의 scrollHeight 값을 scrollTop으로 지정하도록 변경해보자.
$('#btn').on('click', () => {
  const data = $('#txt').val();
  $('#console').append(`${data}\n`);
  const top = $('#console').prop('scrollHeight');
  $('#console').scrollTop(top);
});


이제, textarea의 스크롤 위치가 자동으로 맨 아래쪽을 보여주도록 되었다. :)

반응형