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中的eval函数
Nov 02 Javascript
js实现文章文字大小字号功能完整实例
Nov 01 Javascript
封装属于自己的JS组件
Jan 27 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
May 09 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
Oct 05 Javascript
基于javascript实现的购物商城商品倒计时实例
Dec 11 Javascript
基于node.js依赖express解析post请求四种数据格式
Feb 13 Javascript
ES6教程之for循环和Map,Set用法分析
Apr 10 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
Oct 19 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
Dec 23 Javascript
vue拖拽排序插件vuedraggable使用方法详解
Aug 21 Javascript
JS Canvas接口和动画效果大全
Apr 29 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检测图片木马多进制编程实践
2013/04/11 PHP
php实现统计目录文件大小的函数
2015/12/25 PHP
js如何获取file控件的完整路径具体实现代码
2013/05/15 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
jquery 根据name名获取元素的value值
2015/02/27 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
Python3中的2to3转换工具使用示例
2015/06/12 Python
Python实现快速多线程ping的方法
2015/07/15 Python
Python mutiprocessing多线程池pool操作示例
2019/01/30 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
Hotels.com中国区:好订网
2016/08/18 全球购物
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
产品促销活动策划书
2014/01/15 职场文书
小学英语教学反思
2014/01/30 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
公路绿化方案
2014/05/12 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
开展警示教育活动总结
2015/05/09 职场文书
单位计划生育责任书
2015/05/09 职场文书
背起爸爸上学观后感
2015/06/08 职场文书
纪录片信仰观后感
2015/06/08 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python