이번에 게시판 댓글을 에디터가 아닌 textarea로 작업했습니다.
글 작성시 자동으로 늘어나는 기능이 필요해서 찾아봤습니다.
참조1의 경우
<textarea id="newTweetContent" placeholder="What's happening?" onkeydown="resize(this)" onkeyup="resize(this)"></textarea>
<script>
function resize(obj) {
obj.style.height = '1px';
obj.style.height = (12 + obj.scrollHeight) + 'px';
}
</script>
<style>
textarea { min-height: 5rem; overflow-y: hidden; resize: none; }
</style>
이렇게 코드가 되어있었는데 스크이 계속 생기는게 맘에 안 들어서 좀 더 찾아봤습니다.
참조2의 경우
var textEle = $('.commentEditor'); function adjustHeight() { textEle[0].style.height = 'auto'; var textEleHeight = textEle.prop('scrollHeight'); textEle.css('height', textEleHeight); } adjustHeight(); textEle.on('keyup', function() { adjustHeight(); });
좀 더 예쁘게 잘 동작하는 거 같아서 이렇게 수정했습니다.
참조
문제점...
전체 화면 스크롤 영역 안에서일 경우는 괜찮은데,
전체 화면 스크롤보다 해당 코멘트 창이 늘어날 경우는 계속 포커싱이 해당 코멘트창으로 잡혀져버려서 아래에 타이핑되는 현재 글을 확인할 수가 없음...
ajax로 처리하면 될 거 같기도 한데 그냥 에디터로 변경해야지 ㅠ