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 xml为数据源的下拉框控件
Jul 07 Javascript
向大师们学习Javascript(视频与PPT)
Dec 27 Javascript
javascript模拟实现ajax加载框实例
Oct 15 Javascript
JS去除iframe滚动条的方法
Apr 01 Javascript
JavaScript对象学习小结
Sep 02 Javascript
JavaScript中数组添加值和访问值常见问题
Feb 06 Javascript
vue数组对象排序的实现代码
Jun 20 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
Feb 26 Javascript
浅谈微信小程序列表埋点曝光指南
Oct 15 Javascript
javascript实现点击星星小游戏
Dec 24 Javascript
原生js+css实现tab切换功能
Sep 17 Javascript
vuecli项目构建SSR服务端渲染的实现
Oct 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
第五节 克隆 [5]
2006/10/09 PHP
基于php iconv函数的使用详解
2013/06/09 PHP
php unset全局变量运用问题的深入解析
2013/06/17 PHP
php 如何获取数组第一个值
2013/08/06 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
PHP中array_keys和array_unique函数源码的分析
2016/02/26 PHP
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
jquery实现图片放大镜功能
2015/11/23 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
JS获取鼠标选中的文字
2016/08/10 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
python列表去重的二种方法
2014/02/14 Python
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
解决Python使用列表副本的问题
2019/12/19 Python
Django用户认证系统如何实现自定义
2020/11/12 Python
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
优秀通讯员事迹材料
2014/01/28 职场文书
银行开业庆典方案
2014/02/06 职场文书
市场营销大学生职业规划书
2014/02/25 职场文书
委托书的写法
2014/09/16 职场文书
乡党委干部党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
个人简历求职信范文
2015/03/20 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
婚庆司仪开场白
2015/05/29 职场文书
女性健康知识讲座主持词
2015/07/04 职场文书