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 相关文章推荐
asp.net+js 实现无刷新上传解析csv文件的代码
May 17 Javascript
javascript 获取模态窗口的滚动位置代码
Aug 06 Javascript
javascript与Python快速排序实例对比
Aug 10 Javascript
JS Array.slice 截取数组的实现方法
Jan 02 Javascript
JS本地刷新返回上一页代码
Jul 25 Javascript
Vue框架中正确引入JS库的方法介绍
Jul 30 Javascript
详解JSONObject和JSONArray区别及基本用法
Oct 25 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
Feb 08 Javascript
基于ionic实现下拉刷新功能
May 10 Javascript
layer弹出子iframe层父子页面传值的实现方法
Nov 22 Javascript
vue文件运行的方法教学
Feb 12 Javascript
vuejs移动端实现div拖拽移动
Jul 25 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
浅析XMLHttpRequest的缓存问题
2013/12/13 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
微信小程序实现跑马灯效果
2020/10/21 Javascript
详解关于element级联选择器数据回显问题
2019/02/20 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
浅谈python 导入模块和解决文件句柄找不到问题
2018/12/15 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
Django实现将views.py中的数据传递到前端html页面,并展示
2020/03/16 Python
什么是.net
2015/08/03 面试题
为什么要做架构设计
2015/07/08 面试题
用Java语言将一个键盘输入的数字转化成中文输出
2013/01/25 面试题
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
英文简历中的自我评价用语
2013/12/09 职场文书
趣味活动策划方案
2014/02/08 职场文书
党员十八大心得体会
2014/09/12 职场文书
学校党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android