html+css+Jquery 实现 文本域 文字数量限制、根据输入字数自适应高度

先看效果:初始的效果,样式多少有点问题,不重要!重要的是功能!

在这里插入图片描述

输入后: 根据文字长度,决定文本域长度 + 限制文字数量

在这里插入图片描述

话不多说,直接上代码!

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title></title>
</head>
<style type="text/css">
.foot-send-img img {width: 20px;height: 20px;
}
.text-input_5ZOdm{display: flex;justify-content: center;align-items: end;position: relative;box-sizing: border-box;font-family: Arial,Helvetica,sans-serif;width: 649px;height: 40px;background: #FFFFFF;box-shadow: 0px 0px 6px 1px #ee1903;border-radius: 10px;
}
.text-container{width: 100%;height:100%;
}
.text-input-textarea_chat{background: #FFFFFF;line-height: 28px;border-radius: 10px;resize: none;outline-color: #ffff;width: 100%;height: 100%;border: none;outline: none;word-break: break-word;font-size: 16px;overflow: hidden;padding-left: 14px;padding-top: 7px;
}
.chat-number{float: right;position: relative;font-size: 12px;font-family: PingFangSC, PingFang SC;font-weight: 400;color: #D1D1D1;bottom: 22px;margin-right: 10px;
}
.foot-send-img{width: 55px;background: #FFA245;border-radius: 8px;display: flex;align-items: center;justify-content: center;cursor: pointer;height: 34px;bottom: 3px;position: relative;
}
.sidebar_right-left{display: flex;align-items: center;padding-left: 76px;
}
</style>
<body>
<div class="sidebar_right-left"><div class="text-input_5ZOdm  text-enable_3rWFc"> <div class="text-container"><textarea class="text-input-textarea_chat chat-input-size" id="chat-input-size" placeholder="请问我 您想了解的问题" maxlength="50"></textarea><p class="chat-number"><span id="textNum">0</span>/<span>50</span></p></div><div class="foot-send-img" id="send-btn"><img src="./images/img1.jpg" align="middle"  class="chat-foot-send"></div>
</div>
</div>
</body>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script type="text/javascript">$("#chat-input-size").on('focus input',function(){var textarea = $('#chat-input-size');computerTextareaRows(textarea);var text = textarea.val();var counter = text.length;if (text.indexOf("请问我您想了解的问题") > -1){textarea.val('')}$("#textNum").text(counter);if(counter >= 50){$('.chat-number').css('color','#FF7F7F');return false;}else{$('.chat-number').css('color','#D1D1D1');}
}).on('blur',function(){var textarea = $('#chat-input-size');var text = textarea.val();if (text === ''){textarea.val('请问我您想了解的问题')}
})//根据texarea行数设置高度
function computerTextareaRows(textarea) {var lineHeight = parseFloat(textarea.css('line-height'));var paddingTop = parseFloat(textarea.css('padding-top'));var paddingBottom = parseFloat(textarea.css('padding-bottom'));// 计算行数var contentHeight = textarea[0].scrollHeight - paddingTop - paddingBottom;let proportion = contentHeight / lineHeight;var rows = proportion < 2 ? 1 : Math.ceil(contentHeight / lineHeight);// console.log(rows,textarea[0].scrollHeight,proportion)if (rows>1){$('#chat-input-size').css('height','40px');$('.text-input_5ZOdm').css('height', 'auto');$('.text-input_5ZOdm').css('height', textarea[0].scrollHeight+'px');$('#chat-input-size').css('height',textarea[0].scrollHeight+'px');// $('#send-btn').css('margin-top','20px');} else {$('.text-input_5ZOdm').css('height','40px');// $('#send-btn').css('margin-top','0px');}return rows;
}
</script>
</html>

ps:

1 .样式请自行调整!

2 .此处代码为了方便测试,使用的是线上的jquery地址,使用时,请更换自己的路径地址!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/345316.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

特征工程-特征处理(一)

特征处理-&#xff08;离散型特征处理&#xff09; 完成特征理解和特征清洗之后&#xff0c;我们要进行特征工程中最为重要和复杂的一步了——特征处理 离散型特征处理 离散型特征通常为非连续值或以字符串形式存在的特征&#xff0c;离散型特征通常来讲是不能直接喂入模型中…

如何有效提高矢量网络分析仪的动态范围

动态范围是网络分析仪&#xff08;VNA&#xff09;接收机的最大输入功率与最小可测量功率&#xff08;本底噪声&#xff09;之间的差值&#xff0c;如图所示&#xff0c;要使测量有效&#xff0c;输入信号必须在这些边界内。 如果需要测量信号幅度非常大的变化&#xff0c;例如…

C程序训练:阶乘与溢出

已知n是整数&#xff0c;计算12!3!...n!&#xff0c;并给出最大能够计算的n值是多少&#xff1f; 1. 假设n是int类型&#xff0c;系统用32位表示int类型。代码如下&#xff1a; #include <stdio.h> int main() {int n,sum1,sum1,fact1;int step;for(n2; n<100; n) {…

UCB Data100:数据科学的原理和技巧:第二十一章到第二十六章

二十一、SQL II 原文&#xff1a;SQL II 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 学习成果 介绍过滤组的能力 在 SQL 中执行数据清理和文本操作 跨表连接数据 在本讲座中&#xff0c;我们将继续上次的工作&#xff0c;介绍一些高级的 SQL 语法。 首先&…

3d建模软件有哪些?3d云渲染推荐

3D建模软件有很多&#xff0c;有的非常复杂难以上手&#xff0c;那么适合新手的有哪些呢&#xff1f;一起来看看吧。 1、SketchUp SketchUp是一个用户友好且直观的建模软件&#xff0c;能与V-Ray渲染器一起使用&#xff0c;适合初学者。2、Blender Blender是一个功能强大且免费…

高级JavaScript。如何用JavaScript手撸一个富文本编辑器?

要素过多建议收藏 - 富文本编辑 基本的技术就是在空白 HTML 文件中嵌入一个 iframe 。通过 designMode 属性&#xff0c;可以将这个空白文档变成可以编辑的&#xff0c;实际编辑的则是 <body> 元素 的 HTML 。 designMode 属性有两个可能的值&#xff1a; "…

文件恢复工具推荐!这三款轻松恢复数据!

“大家保存在电脑上的文件丢失后有什么比较好的恢复方法或者工具推荐吗&#xff1f;对于我这种电脑小白来说&#xff0c;真的太需要一个好用的工具了&#xff01;谢谢&#xff01;” 在我们的日常工作中&#xff0c;可能都遇到过文件误删或丢失的情况。这有时会让我们感到很不安…

【模型评估 07】过拟合与欠拟合

在模型评估与调整的过程中&#xff0c;我们往往会遇到“过拟合”或“欠拟合”的情况。如何有效地识别“过拟合”和“欠拟合”现象&#xff0c;并有针对性地进行模型调整&#xff0c;是不断改进机器学习模型的关键。特别是在实际项目中&#xff0c;采用多种方法、从多个角度降低…

将.NET应用转换成Window服务

写在前面 本文介绍了将.NET8.0应用程序转换成Windows服务。 需要在NuGet中获取并安装&#xff1a;Microsoft.Extensions.Hosting.WindowsServices 包 代码实现 using System.Runtime.InteropServices; using WorkerService1;public class Program {public static void Main…

免费的数据恢复软件哪个好?这11个数据恢复软件可以试试

许多免费的数据恢复程序可以帮助恢复或“取消删除”您意外删除的文件。您已删除的文件通常仍存在于您的硬盘驱动器&#xff08;或 USB 驱动器、媒体卡、智能手机等&#xff09;上&#xff0c;并且可以使用数据恢复软件进行恢复。 11个数据恢复软件榜单 使用这些免费软件数据恢…

Nacos下载与安装【windows】

&#x1f95a;今日鸡汤&#x1f95a; 我不知将去何方&#xff0c;但我已经在路上。 ——宫崎骏《千与千寻》 目录 &#x1f95e;1.Nacosdi地址 &#x1f32d;2.GitHub下载 &#x1f37f;3.目录结构 &#x1f953;4.启动nacos &#x1f9c2;5.客户端登陆 &#x1f9c8…

kotlin运行

1.使用android studio 由于我本身是做android的&#xff0c;android studio本身有内置kotlin的插件。但若只是想跑kotlin的程序&#xff0c;并不像和android程序绑在一起&#xff0c;可以创建一个kt文件&#xff0c;在里面写一个main函数&#xff0c;就可以直接运行kotlin程序…