首页 > web前端 > js教程 > 如何创建一个在内容删除时缩小的自动调整大小的文本区域?

如何创建一个在内容删除时缩小的自动调整大小的文本区域?

Susan Sarandon
发布: 2024-12-30 02:08:08
原创
250 人浏览过

How to Create a Self-Resizing TextArea That Shrinks on Content Deletion?

创建一个自动调整大小并缩小的文本区域

挑战:之前尝试使用自动调整大小创建一个文本区域调整大小无法根据内容缩小文本区域

解决方案:

原始线程提供的代码根据其内容调整文本区域的高度。但是,它没有考虑内容删除,从而导致 clientHeight 值不正确。

要克服此限制,需要更全面的解决方案:

function FitToContentWithShrink(id, maxHeight) {
  var text = id && id.style ? id : document.getElementById(id);
  if (!text) return;

  var newHeight = text.scrollHeight;
  var currentHeight = text.clientHeight;

  // Check if the content has changed
  if (newHeight !== currentHeight) {
    if (newHeight > currentHeight) {
      // If the new height is greater than the current height, expand
      text.style.height = newHeight + "px";
    } else if (newHeight < currentHeight) {
      // If the new height is less than the current height, shrink
      text.style.height = newHeight + "px";
    }
  }
}
登录后复制

好处:

  • 缩小内容:此解决方案正确根据内容更改(包括删除)计算新高度。
  • 跨浏览器可靠:支持 Firefox、Chrome、IE、Edge、IOS Safari 和 Android 浏览器。
  • 使用预加载的文本:处理预填充的文本文本区域。
  • 多功能: 可应用于网站上的所有文本区域。

用法:

window.onload = function () {
  document.getElementById("ta").onkeyup = function () {
    FitToContentWithShrink(this, 500);
  };
};
登录后复制

额外注意:

在严格模式下应用 JavaScript 不会影响此解决方案的功能。

以上是如何创建一个在内容删除时缩小的自动调整大小的文本区域?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板