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地址,使用时,请更换自己的路径地址!

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

科研绘图(四)火山图

火山图是生物信息学中常用的一种图表&#xff0c;用来显示基因表达数据的变化。它通常将每个点表示为一个基因&#xff0c;x轴显示对数比率&#xff08;log ratio&#xff09;&#xff0c;表示基因表达的变化大小&#xff1b;y轴显示-log10(p-value)&#xff0c;表示变化的统计…

手把手Docker部署Gitblit服务器

1拉取镜像 docker pull jacekkow/gitblit:v1.9.1 2.启动 docker run -d --name gitblit --restart always -p 10006:8080 -p 18443:8443 -p 19418:9418 -p 29418:29418 -v /data/gitblit/data:/opt/gitblit-data jacekkow/gitblit:v1.9.1 3.查看 默认账户/密码:admin/adm…

Trie字符串统计

题目传送门&#xff1a;835.Trie字符串统计 维护一个字符串集合&#xff0c;支持两种操作&#xff1a; I x 向集合中插入一个字符串 x&#xff1b;Q x 询问一个字符串在集合中出现了多少次。 共有 N 个操作&#xff0c;所有输入的字符串总长度不超过 105105&#xff0c;字符串仅…

您与此网站之间建立的连接不安全

连接不安全的主要原因之一是使用不安全的通信协议。在互联网传输中&#xff0c;如果使用的协议不加密&#xff0c;那么数据就容易受到窃听和篡改。另一个可能的原因是网站没有正确配置其安全证书&#xff0c;使得用户的连接没有得到适当的加密保护。 解决方法&#xff1a; 采用…

Jeson nano--安装使用摄像头csi/usb

Jeson nano--安装使用摄像头 一、 安装使用摄像头二、vscode调用摄像头总结 一、 安装使用摄像头 列出与视频设备相关的设备文件 ls /dev/video*显示与 /dev/video0 设备关联的摄像头支持的所有格式及其详细信息。可以查看输出以了解所支持的分辨率、帧率和像素格式等信息。请…

centos docker-compose安装教程-2024最新版 亲测可用

目录 长时间不安装,生疏了,再次记录下 1.下载 2.修改名称 3.提权 4.测试验证 长时间不安装,生疏了,再次记录下 1.下载 官网地址 docker-compose官网地址&#xff1a;https://docs.docker.com/compose/compose-file/compose-file-v3/ #进入目录 cd /usr/local/bin#下载 wg…

LeetCode讲解篇之216. 组合总和 III

文章目录 题目描述题解思路题解代码 题目描述 题解思路 使用递归回溯算法&#xff0c;当选择数字num后&#xff0c;在去选择大于num的合法数字&#xff0c;计算过程中的数字和&#xff0c;直到选择了k次&#xff0c;如果数组和等于n则加入结果集 从1开始选择数字&#xff0c;直…

jmeter如何做接口测试?

Jmeter介绍&测试准备&#xff1a; Jmeter介绍&#xff1a;Jmeter是软件行业里面比较常用的接口、性能测试工具&#xff0c;下面介绍下如何用Jmeter做接口测试以及如何用它连接MySQL数据库。 前期准备&#xff1a;测试前&#xff0c;需要安装好Jmeter以及jdk并配置好jdk环…

基于时域有限差分法的FDTD的计算电磁学算法-YEE网格下的更新公式推导

基于时域有限差分法的FDTD的计算电磁学算法&#xff08;含Matlab代码&#xff09;-YEE网格下的更新公式推导 参考书籍&#xff1a;The finite-difference time-domain method for electromagnetics with MATLAB simulations&#xff08;国内翻译版本&#xff1a;MATLAB模拟的电…

LLM之RAG理论(五)| 使用知识图谱增强RAG

知识图谱&#xff08;KG&#xff09;或任何图都包括节点和边&#xff0c;其中每个节点表示一个概念&#xff0c;每个边表示一对概念之间的关系。本文介绍一种将任何文本语料库转换为知识图谱的技术&#xff0c;本文演示的知识图谱可以替换其他专业知识图谱。 一、知识图谱 知识…

Postman接口测试之断言,全网最细教程没有之一!

一、断言 在 postman 中我们是在Tests标签中编写断言&#xff0c;同时右侧封装了常用的断言&#xff0c;当然 Tests 除了可以作为断言&#xff0c;还可以当做后置处理器来编写一些后置处理代码&#xff0c;经常应用于&#xff1a; 【1】获取当前接口的响应&#xff0c;传递给…

JavaScript的一道题型

这道题我觉得考察的知识点蛮多的&#xff0c;就单独拿出来了&#x1f92d; <html> <head><title>Title</title> </head> <body> <input type"button" value"全选" id"qx"> <input type"butto…

关于编程的一些小小记录

这里记录一些关于编程的小技巧吧&#xff0c;算是个记录 1&#xff0c;vs同时有多个cpp文件怎么办&#xff1f; 我们只想运行第一个cpp文件&#xff0c;那么怎么做呢&#xff1f; 其实很简单&#xff0c;单击你不想让之运行的文件&#xff0c;点击最下面的属性 最后设置为这样…

强化学习应用(五):基于Q-learning算法的无人车配送路径规划(通过Python代码)

一、Q-learning算法介绍 Q-learning是一种强化学习算法&#xff0c;用于解决基于环境的决策问题。它通过学习一个Q-table来指导智能体在不同状态下采取最优动作。下面是Q-learning算法的基本步骤&#xff1a; 1. 定义环境&#xff1a;确定问题的状态和动作空间&#xff0c;并…

最小花费-银行转账-图的最短路-超详细解析注释

最小花费-银行转账-图的最短路-超详细解析注释 【题目描述】 在n个人中&#xff0c;某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费&#xff0c;请问A最少需要多少钱使得转账后B收到100元。 …

office办公技能|word中的常见通配符使用

一、删除Word中含有指定内容的整行 操作方法&#xff1a; 1、快捷键 CtrlH&#xff0c;打开Word的查找替换窗口&#xff0c;单击【更多】按钮&#xff0c;勾选“使用通配符”。 2、在查找内容处&#xff0c;输入“替换内容*^13”&#xff0c;替换为处什么都不填。 3、单击【…

现阶段Python和Java哪个更吃香?

现阶段Python和Java哪个更吃香&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Java的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&…

2024年最新版 springboot+vue整合支付宝沙箱支付功能,一步一步带您实现完整的支付宝支付功能

目录 1、进入支付宝开放平台 1.1 登录支付宝账号后下拉选择网页/移动应用开发​编辑 1.2 创建网页应用​编辑 1.3 创建成功后进入沙箱 1.4 点击启用公钥&#xff08;有重要作用&#xff01;springboot整合时会用到&#xff09;​编辑 2、开始springboot与支付宝沙箱的整…

2024年【山东省安全员C证】考试及山东省安全员C证复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 山东省安全员C证考试是安全生产模拟考试一点通总题库中生成的一套山东省安全员C证复审考试&#xff0c;安全生产模拟考试一点通上山东省安全员C证作业手机同步练习。2024年【山东省安全员C证】考试及山东省安全员C证复…