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 相关文章推荐
Auntion-TableSort国人写的一个javascript表格排序的东西
Nov 12 Javascript
jquery如何通过name名称获取当前name的value值
Dec 20 Javascript
JavaScript cookie的设置获取删除详解
Feb 11 Javascript
JavaScript数组迭代器实例分析
Jun 09 Javascript
谈谈jQuery Ajax用法详解
Nov 27 Javascript
使用jQuery操作HTML的table表格的实例解析
Mar 13 Javascript
JavaScript获取中英文混合字符串长度的方法示例
Feb 04 Javascript
jQuery插件zTree实现的多选树效果示例
Mar 08 Javascript
react 创建单例组件的方法
Apr 26 Javascript
浅谈React Event实现原理
Sep 20 Javascript
关于vue状态过渡transition不起作用的原因解决
Apr 09 Javascript
微信小程序点击保存图片到本机功能
Dec 13 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
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
php中的登陆login实例代码
2016/06/20 PHP
php PDO判断连接是否可用的实现方法
2017/04/03 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
javascript计算星座属相(十二生肖属相)示例代码
2014/01/09 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
jsTree使用记录实例
2016/12/01 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
js中toString()和String()区别详解
2017/03/23 Javascript
vue在响应头response中获取自定义headers操作
2020/07/24 Javascript
python创建和删除目录的方法
2015/04/29 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
由面试题加深对Django的认识理解
2019/07/19 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
什么是Python变量作用域
2020/06/03 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
100%法国制造的游戏和玩具:Les Jouets Français
2021/03/02 全球购物
高中生学习生活的自我评价
2013/10/09 职场文书
幼儿教师国培感言
2014/02/19 职场文书
捐书活动总结
2014/05/04 职场文书
个人简历自荐信
2014/06/26 职场文书
学位证书委托书
2014/09/30 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
2015秋季开学典礼演讲稿
2015/07/16 职场文书
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers
MySQL 原理与优化之Update 优化
2022/08/14 MySQL