如何让文本区域在更新时保持滚动到底部

发布于 2024-12-04 02:31:37 字数 275 浏览 1 评论 0原文

我的问题有点即兴,所以我会尽力解释这一点。

我有一个文本区域,其 css 为 #object{overflow:hidden;resize:none;}。我试图防止它产生滚动条,同时也调整自身大小。该文本区域与外部脚本的控制台同步,这意味着它会更新。但默认情况下,除非您突出显示文本,否则它将保留在顶部,并将其拖到元素的底部。当然,这将是除了使用箭头键之外向下滚动的唯一方法。

以编程方式,有什么方法可以在更新时将文本区域保持在底部吗?如果能够自动滚动以适应其用例,那就太好了。

My problem is a bit off the cuff here, so I'll try to explain this best I can.

I have a text area, having css of #object{overflow:hidden;resize:none;}. I am trying to prevent it from spawning scroll bar while also resizing itself. This textarea is synced with an external script's console meaning it updates. By default however, it will stay at the top unless you highlight text, dragging off to the bottom of the element. This would be the only way to scroll down other than with arrow keys, naturally.

Programmatically, is there any way to keep the text area down to the bottom upon updating? It would be nice to have it auto-scroll to accommodate its use case.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

奢欲 2024-12-11 02:31:38

你可以通过 JavaScript 来完成。使用 scrollHeight 属性设置文本区域的 scrollTop 属性,如下所示:

document.getElementById("textarea").scrollTop = document.getElementById("textarea").scrollHeight 

You can do it by javascript. Set the scrollTop property of text area with scrollHeight property like below:

document.getElementById("textarea").scrollTop = document.getElementById("textarea").scrollHeight 
悲欢浪云 2024-12-11 02:31:38

通过使用 jQuery,您可以使用以下方法了解 textarea 的内容何时发生变化:

$("#object").change(function() {
  scrollToBottom();
});

并使用以下方法滚动到底部:

function scrollToBottom() {
  $('#object').scrollTop($('#object')[0].scrollHeight);
}

滚动代码取自 jquerybyexample.blogspot.com

By using jQuery, you can find out when the content of the textarea changes using:

$("#object").change(function() {
  scrollToBottom();
});

And scroll to the bottom using:

function scrollToBottom() {
  $('#object').scrollTop($('#object')[0].scrollHeight);
}

Scroll code taken from jquerybyexample.blogspot.com.

放血 2024-12-11 02:31:38

使用 Javascript

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

使用 Jquery

$('#textarea_id').scrollTop($('#textarea_id')[0].scrollHeight);​​​

Using Javascript

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

Using Jquery

$('#textarea_id').scrollTop($('#textarea_id')[0].scrollHeight);​​​
时间你老了 2024-12-11 02:31:38

通用 JQuery 插件

这里有一个通用的 jquery 插件,用于任何元素的滚动底部:

$.fn.scrollBottom = function() {
  return $(this).scrollTop($(this)[0].scrollHeight);
};

用法:

$("#logfile").val( $("#logfile").val() + "this is new line test\n" ).scrollBottom();

Generic JQuery Plugin

Here a generic jquery plugin for scrollBottom of any element:

$.fn.scrollBottom = function() {
  return $(this).scrollTop($(this)[0].scrollHeight);
};

usage:

$("#logfile").val( $("#logfile").val() + "this is new line test\n" ).scrollBottom();
赠我空喜 2024-12-11 02:31:38
function checkTextareaHeight(){
   var textarea = document.getElementById("yourTextArea");
   if(textarea.selectionStart == textarea.selectionEnd) {
      textarea.scrollTop = textarea.scrollHeight;
   }
}

每次当文本区域的内容改变时调用该函数。如果无法编辑外部影响,请使用 setInterval 定期激活此功能。

function checkTextareaHeight(){
   var textarea = document.getElementById("yourTextArea");
   if(textarea.selectionStart == textarea.selectionEnd) {
      textarea.scrollTop = textarea.scrollHeight;
   }
}

Call this function every time when the contents of the textarea are changed. If you cannot edit the external influence, periodically activate this function using setInterval.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文