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

这篇具有很好参考价值的文章主要介绍了html+css+Jquery 实现 文本域 文字数量限制、根据输入字数自适应高度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

html+css+Jquery 实现 文本域 文字数量限制、根据输入字数自适应高度,前端学习记录,html,css,jquery

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

html+css+Jquery 实现 文本域 文字数量限制、根据输入字数自适应高度,前端学习记录,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地址,使用时,请更换自己的路径地址!

html+css+Jquery 实现 文本域 文字数量限制、根据输入字数自适应高度,前端学习记录,html,css,jquery文章来源地址https://www.toymoban.com/news/detail-786395.html

到了这里,关于html+css+Jquery 实现 文本域 文字数量限制、根据输入字数自适应高度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • web网页制作与实现 html+css+javascript+jquery+bootstarp响应式美食网站设计与实现

    🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (1000套) 】 🧡 程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作

    2024年02月04日
    浏览(54)
  • css 实现 html 元素内文字水平垂直居中的N种方法

            上一篇博文写了div 中元素居中的N种常用方法,那么单个html元素:div(块级元素代表),span(行内元素代表)中的文字如何水平垂直都居中呢?实现方法如下:         本文例子使用的 html body结构下的模型如下:         例子居中效果都如下图: 注:当把div

    2024年02月13日
    浏览(37)
  • 1 请使用js、css、html技术实现以下页面,表格内容根据查询条件动态变化。

            注意:         1.背景颜色用ppt的取色器来获取:                 先点击ppt的形状轮廓,然后点击取色器,吸颜色,然后再点击形状轮廓的其他轮廓颜色,即可获取到对应颜色。           2.表格间的灰色线是在th和td中用border属性设置的;         3.在js中拼

    2024年02月16日
    浏览(30)
  • 微信小程序——CSS限制文字宽度和行数(溢出显示省略号)

    知识专栏 专栏链接 微信小程序专栏 https://blog.csdn.net/xsl_hr/category_12338067.html?spm=1001.2014.3001.5482 Git版本管理 https://blog.csdn.net/XSL_HR/article/details/130986889?spm=1001.2014.3001.5501 监听页面滑动 https://blog.csdn.net/XSL_HR/article/details/130986889?spm=1001.2014.3001.5501 判断用户上滑还是下滑 https://blog

    2024年02月10日
    浏览(48)
  • 注释的魔力:HTML、JS/jQuery和CSS中的单行与多行注释

    在HTML中,我们使用 !-- 和 -- 来创建单行注释。例如: 而多行注释也类似例如: 在JavaScript和jQuery中,我们使用 // 来创建单行注释。例如: 对于多行注释,我们可以使用 /* 和 */ 来创建。例如: 在CSS中,我们同样可以使用 /* 和 */ 来创建单行注释。例如: 对于多行注释,我们

    2024年01月18日
    浏览(36)
  • python_web1(前端开发之HTML、CSS、Bootstap、Javascript、JQuery)

    知识总结: Python_web前端开发 python 安装Flask web框架 pip install flask 简介:templates用来返回html的页面,而非文本。 创建文件index.html 结构如下 index.xml内容如下: web1.py内容如下: 重新运行后: 固定格式:h/div/span/a/img/ul/li/table/input/form 通用的字符编码 meta charset=“UTF-8” div:一个

    2024年04月14日
    浏览(51)
  • uniapp写出文本域,右下角并限制字数200

    js代码  在data中定义一个变量desc   desc: \\\'\\\', descInput(e) {     console.log(e.detail.value.length, \\\'输入的字数\\\') },  样式: .textarea_box{     padding: 20rpx;     background-color: #F2F2F2;     /deep/ .uni-textarea-textarea{         font-size: 28rpx;         line-height: 45rpx;     }     .num{         t

    2024年02月10日
    浏览(32)
  • 纯CSS3的单选框、复选框、开关按钮UI库-自由分享jQuery、html5、css3的插件库

    纯CSS3的单选框、复选框、开关按钮UI库-自由分享jQuery、html5、css3的插件库-遇见你与你分享

    2024年01月19日
    浏览(38)
  • 最详细!!!前端原神官网 (采用html+css+js+dom+ajax+jquery+swiper+json)完整版

    1.该项目采用了大部分前端知识, 完整的复刻原神官网上所显示的全内容 ,非常全面和详细。希望有兴趣的小伙伴萌可以看看和参考一下!!!该项目可以作为大学生 毕设项目(附带项目答辩ppt) 同时也可以作为计算机专业的小伙伴的 期末大作业 。喜欢的请留下你的足迹

    2024年02月05日
    浏览(50)
  • 要在HTML中让文字居中,可以使用CSS样式来设置文本的对齐方式

    以下是几种常见的居中文本的方法: 1. 使用 `text-align: center;` CSS样式:    这个方法适用于将文本居中对齐在其父元素内。可以将 `text-align: center;` 应用于父元素,这将使其内部的所有文本内容都居中对齐。    示例代码:    ```html    style       .container {         text-align

    2024年02月16日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包