2014-10-24 31 views
7

Tôi có một vùng văn bản mà tôi thêm dữ liệu vào với textarea.value += "more text\n"; và tôi muốn nó "ở lại" được cuộn xuống dưới cùng, vì vậy nó luôn hiển thị dòng cuối cùng.Textarea tự động cuộn xuống dưới cùng

Tôi đã đọc rằng tôi nên làm:

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

Nhưng tôi đã cố gắng đó (http://jsfiddle.net/BenjiWiebe/mya0u1zo/) và tôi không thể có được nó để làm việc.

Tôi đang làm gì sai?

+0

trùng lặp có thể xảy ra của [Làm thế nào để có một textarea để giữ cuộn xuống đáy khi cập nhật] (https: // stackoverflow .com/questions/7373081/how-to-have-a-textarea-to-keep-scroll-to-the-bottom-khi-cập nhật) – LoganMzz

Trả lời

14

Bạn cần phải thiết lập scrollTop mỗi khi bạn thêm văn bản:

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

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

+0

OK, Vì vậy, không có cách nào làm cho nó "dính" xuống đáy ? Bởi vì tôi có nhiều vị trí trong mã của tôi nối thêm văn bản ... mặc dù tôi đoán tôi có thể tạo một hàm 'append_text' ... – BenjiWiebe

+1

Bạn cần cập nhật' scrollTop' nếu 'scrollHeight' thay đổi. – celeritas

Các vấn đề liên quan