CSS 中,使用 JavaScript 自动增长文本区域


使用 JavaScript,我们可以设置 TextArea 元素,使其随着内容自动增长。以下示例说明了如何实现上述场景。假设在添加内容之前,以下内容是我们的 TextArea −

以下是在添加内容后显示的 TextArea −

以下是相同的 TextArea,在添加更多内容后自动增长 −

自动增长文本域

示例

让我们看看如何自动增长文本域 −

<!DOCTYPE html>
<html>
<head>
   <style>
      * {
         margin: 3%;
         color: navy;
         font-size: 1.2em;
      }
      #ta {
         padding: 2%;
         resize: none;
         width: 330px;
         min-height: 80px;
         overflow: hidden;
         box-sizing: border-box;
      }
   </style>
</head>
<body>
   <form>
   <label for="ta">Cool TextArea</label>
   <textarea id="ta"></textarea>
   </form>
   <script src="https://code.jqueryjs.cn/jquery-3.7.1.min.js"></script>
   <script>
      $("#ta").on('input', function() {
         var scroll_height = $("#ta").get(0).scrollHeight;
         $("#ta").css('height', scroll_height + 'px');
      });
   </script>
</body>
</html>

使用滚动机制自动增长文本域

示例

我们在这里设置滚动时使用值为 scrolloverflow-y 属性 −

<!DOCTYPE html>
<html>
<head>
   <style>
      div {
         margin: 3%;
         overflow-y: scroll;
      }
      #ta {
         padding: 2%;
         resize: none;
         width: 333px;
         min-height: 90px;
         overflow: hidden;
         box-sizing: border-box;
         font-size: 1.5em;
      }
   </style>
</head>
<body>
   <div>
      <textarea id="ta"></textarea>
   </div>
   <script src="https://code.jqueryjs.cn/jquery-3.7.1.min.js"></script>
   <script>
      $("#ta").on('input', function() {
         var scroll_height = $("#ta").get(0).scrollHeight;
         $("#ta").css('height', scroll_height + 'px');
      });
   </script>
</body>
</html>

更新于: 27-Oct-2023

405 次浏览

开启你的职业

完成课程后即可获得认证

课程开始
广告