Vue实现input宽度随文字长度自适应操作


Posted in Javascript onJuly 29, 2020

Vue实现input宽度随文字长度自适应操作

业务需求,输入文字,后面的元要紧随其后,奈何input默认是有宽度,我想要达到,输入文字,动态改变input的宽度,试了很多方法,目前自己琢磨一种,有遇到问题的可以参考一下,

直接贴代码

<div class="textcontain">
     <input
      type="text"
      v-model.number="item.cardComboMoney"
      maxlength="5"
      placeholder="设定数值"
      oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"
      :disabled='disabled'
      :style="{width:text(item.cardComboMoney)}"
     >
     <span
      class="textshow"
      v-if="item.cardComboMoney!=0&&item.cardComboMoney!=''"
     >元</span>
    </div>
computed: {
  text () {
   return function (value) {
    if (value == '' || value == 0) {
     return '100%'
    } else {
     return String(value).length * 0.32 + 'rem'
    }
   }
  }
 },

利用计算属性,计算当前字体的长度,我这里最多允许输入5个字符的长度,所以这样计算影响不大

补充知识:input宽度自适应(解决文字占位宽度不同所引起的问题)

问题描述:

input在输入的时候,要能让input的宽度随着输入的文字自动增宽。

思路1:获取文字的内容,然后通过文字.length * font-size计算文字的宽度,但是由于文字“i”与“中”显然占位宽度不同而引起宽度差

思路:

设置一个隐藏的span,使其font属性与input统一,然后获取span的宽度,赋值给input

<!DOCTYPE html>
<html lang="en">
 
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
 <title>input宽度自适应</title>
 <style>
  body {
   font-size: 16px;
   font-family: Arial, Helvetica, sans-serif;
  }
 
  #my-input {
   width: 20px;
   padding: 0;
   font-size: 16px;
   font-family: Arial, Helvetica, sans-serif;
  }
 
  #my-span {
   position: absolute;
   left: 0;
   visibility: hidden;
  }
 </style>
</head>
 
<body>
 <!-- 思路:将文字内容赋值给隐藏的span,然后将input的宽度设置为span的宽度 -->
 <span id="my-span"></span>
 <input type="text" id="my-input" oninput="changeWidth()">
 
 <script>
  function changeWidth() {
   var mySpan = $("#my-span");
   var myInput = $("#my-input");
   mySpan.html(myInput.val()); //给span赋值
   if (mySpan.width() > 20) {
    myInput.css('width', mySpan.width());
   }
  }
 </script>
</body>
 
</html>

以上这篇Vue实现input宽度随文字长度自适应操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 类型判断代码分析
Mar 28 Javascript
JavaScript获得url所有参数键值表的方法
Mar 21 Javascript
jquery实现兼容IE8的异步上传文件
Jun 15 Javascript
详解js跨域原理以及2种解决方案
Dec 09 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
Dec 04 Javascript
分析javascript中9 个常见错误阻碍你进步
Sep 18 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
Nov 19 Javascript
React中使用UEditor百度富文本的方法
Aug 22 Javascript
微信小程序新手教程之启动页的重要性
Mar 03 Javascript
JavaScript Array对象使用方法解析
Sep 24 Javascript
JavaScript实现打砖块游戏
Feb 25 Javascript
基于canvasJS在PHP中制作动态图表
May 30 Javascript
vue 判断元素内容是否超过宽度的方式
Jul 29 #Javascript
在vue中实现给每个页面顶部设置title
Jul 29 #Javascript
vue实现移动端项目多行文本溢出省略
Jul 29 #Javascript
ElementUI 修改默认样式的几种办法(小结)
Jul 29 #Javascript
Element中Slider滑块的具体使用
Jul 29 #Javascript
vue 实现超长文本截取,悬浮框提示
Jul 29 #Javascript
javascript实现移动端触屏拖拽功能
Jul 29 #Javascript
You might like
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
JavaScript效率调优经验
2009/06/04 Javascript
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
2018/12/11 jQuery
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
js实现直播点击飘心效果
2020/08/19 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
python list中append()与extend()用法分享
2013/03/24 Python
python中的内置函数getattr()介绍及示例
2014/07/20 Python
Python使用django获取用户IP地址的方法
2015/05/11 Python
Python匹配中文的正则表达式
2016/05/11 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Python生成数字图片代码分享
2017/10/31 Python
Python中类的创建和实例化操作示例
2019/02/27 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
会计专业推荐信
2013/10/29 职场文书
巧克力蛋糕店创业计划书
2014/01/14 职场文书
医师定期考核实施方案
2014/05/07 职场文书
服务承诺书
2015/01/19 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript
浅谈自定义校验注解ConstraintValidator
2021/06/30 Java/Android