推 shawnwang:感謝第一篇回文以及這篇回覆的高手 ^^; 受益了 03/10 11:41
※ 引述《shawnwang (休假妳好)》之銘言:
: 設計了一個頁面,有一個大的 textarea 欄位
: 但這個欄位不允許使用者輸入,而是透過 JavaScript 將 Value 逐行填進去
: 當行數填滿後,右邊會出現 Scroll Bar,資料可以繼續填入
: 問題在於,出現 Scroll Bar 後,第一行的文字仍然在第一行,而不會往上捲動
: 反而是繼續輸入的文字被隱藏在 textarea 底下之後了
: 請問應該用何種事件驅動 可以使內文自動往上捲動
: 讓使用者可以看到最新一筆的文字於最下面一行呢?
: 若表達得不清楚 懇請高手們提出 謝謝各位
: 說的有點冗長...簡單補充一句話...就是要如何使 Scroll Bar 自動往下拉
: (內文自動往上捲)
這是動態更改textarea的rows
觸發onkeyup事件時呼叫ChangeRows()
要達到你的需求就是把value給定給textarea並直接呼叫ChangeRows()
<textarea id="txt" wrap="hard" style="overflow:hidden;"
onkeyup="ChangeRows(this);">
</textarea>
<script language="javascript">
var ObjHeight=document.getElementById('txt').scrollHeight;
function ChangeRows(Obj){
if(ObjHeight<Obj.scrollHeight){
while(Obj.clientHeight<Obj.scrollHeight)
Obj.rows=Obj.rows+1;
}
if(ObjHeight>Obj.scrollHeight){
while(Obj.clientHeight>Obj.scrollHeight){
if(Obj.rows==2) break;
Obj.rows=Obj.rows-1;
}
}
ObjHeight=Obj.scrollHeight;
}
</script>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.64.104.3