Vue实现textarea固定输入行数与添加下划线样式的思路详解


Posted in Javascript onJune 28, 2018

先上效果图###

Vue实现textarea固定输入行数与添加下划线样式的思路详解 

textarea下划线

设置一张1*35 //行高 的图片 , 设置背景图即可.

background: url('./img/linebg.png') repeat;
border: none;outline: none;overflow: hidden;
line-height: 35px;//注意行高要和背景图高度一致resize: none;

固定输入行数

需求:用户固定不论多少字节,只能输入2行.

因为是限制行数,所以不能用maxlength设置.

实现思路

首先想到计算出用户输入了几行,然后超出部分字符删除掉就OK.

<textarea class='textarea' @scroll='textsrc' v-model='text.Headquarters' ref='Headquarters' rows="2"></textarea>

首先取出

textarea元素的整体高度,然后除一下行高很轻松的到目前输入到几行.

因为如果用户一次复制一大段文字 ,  粘贴到textarea里则会直接出现多行 , 删除字符串超出部分换行还会触发scroll事件, 所以用if语句判断一下是否满足了限制.

发现多行代码排版错误,贴张图吧.

Vue实现textarea固定输入行数与添加下划线样式的思路详解 

textsrc() {  
this.$refs.Headquarters.scrollTo(0, 0)  
let LineNumber = this.$refs.Headquarters.scrollHeight / 35;  
if (LineNumber => 2) {   
this.state = false;  
} else {   
this.state = true;  
};  
!this.tiemr && !this.state && this.tiemer();  
this.tiemr && this.state && clearInterval(this.tiemr);  
if (this.state) {   
this.tiemr = null;  
}  
},

写一个删除多余字符函数

Vue实现textarea固定输入行数与添加下划线样式的思路详解 

tiemer() 
{  
this.tiemr = setInterval(() => 
{   
this.text.Headquarters = this.text.Headquarters.slice(   
0,   
this.text.Headquarters.length - 1   
);   
if (this.$refs.Headquarters.scrollHeight / 35 == 2)
{   
clearInterval(this.tiemr)   
this.tiemr = null   
this.state = true   
}
  },
 10);  
 },

最后贴一下 github ,欢迎有更好方法的大神赐教.

总结

以上所述是小编给大家介绍的使用Vue实现textarea固定输入行数与添加下划线样式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
通过Javascript将数据导出到外部Excel文档的函数代码
Jun 15 Javascript
js/html光标定位的实现代码
Sep 23 Javascript
javascript垃圾收集机制与内存泄漏详细解析
Nov 11 Javascript
同一个网页中实现多个JavaScript特效的方法
Feb 02 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
Mar 03 Javascript
BootStrap中的表单大全
Sep 07 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
Oct 27 Javascript
Mac中安装nvm的教程分享
Dec 11 Javascript
快速解决brew安装特定版本flow的问题
May 17 Javascript
js实现网页同时进行多个倒计时功能
Feb 25 Javascript
bootstrap table插件动态加载表头
Jul 19 Javascript
使用Vue实现调用接口加载页面初始数据
Oct 28 Javascript
详解swipe使用及竖屏页面滚动方法
Jun 28 #Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
Jun 28 #Javascript
浅谈vue首屏加载优化
Jun 28 #Javascript
jQuery实现获取选中复选框的值实例详解
Jun 28 #jQuery
Vue SPA单页应用首屏优化实践
Jun 28 #Javascript
Webpack的dll功能使用
Jun 28 #Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
Jun 28 #Javascript
You might like
PHP输出数组中重名的元素的几种处理方法
2012/09/05 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
php自定义函数实现汉字转换utf8编码的方法
2016/09/29 PHP
php实现小程序支付完整版
2018/10/09 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
PHP实现微信提现(企业付款到零钱)
2019/08/01 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
Webwork 实现文件上传下载代码详解
2016/02/02 Javascript
jQuery EasyUI 获取tabs的实例解析
2016/12/06 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
2016/12/06 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
python人人网登录应用实例
2014/09/26 Python
Python中查看文件名和文件路径
2017/03/31 Python
用python实现对比两张图片的不同
2018/02/05 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
个人查摆问题自查报告
2014/10/16 职场文书
报案材料怎么写
2015/05/25 职场文书
月考总结与反思
2015/10/22 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书
七年级作文之冬景
2019/11/07 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
Python使用海龟绘图实现贪吃蛇游戏
2021/06/18 Python
Python使用MapReduce进行简单的销售统计
2022/04/22 Python
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers