使用JavaScript添加文本后textarea滚动条自动置顶的解决求助
解决textarea添加内容后滚动条重置的问题
问题根源在于直接修改内容时,浏览器会默认重置textarea的滚动位置。要保持原有滚动位置,只需在修改内容前后保存并恢复滚动条位置即可:
const textarea = document.getElementById('my_textarea'); let data = "new content added"; // 保存当前滚动条距离顶部的位置 const scrollPos = textarea.scrollTop; // 推荐用value操作textarea内容(符合表单元素标准用法) textarea.value = data + textarea.value; // 恢复之前的滚动位置 textarea.scrollTop = scrollPos;
补充说明
- 尽量使用
textarea.value而非innerHTML操作内容,这是处理表单输入元素的标准方式,兼容性和语义性更好。 - 如果是往内容末尾追加文本,还可以通过定位光标到末尾实现,但往开头添加内容时,保存并恢复
scrollTop是最直接有效的方式。
内容的提问来源于stack exchange,提问作者Eduardo
相关产品推荐
相关产品推荐

