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 相关文章推荐
js一组验证函数
Dec 20 Javascript
struts2+jquery+json实现异步加载数据(自写)
Jun 24 Javascript
让复选框只能选择一项的方法
Oct 08 Javascript
javascript清空table表格的方法
May 14 Javascript
JavaScript数据类型学习笔记
Jan 25 Javascript
ES6的新特性概览
Mar 10 Javascript
JavaScript动态生成二维码图片
Apr 20 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
Sep 12 Javascript
js 事件的传播机制(实例讲解)
Jul 20 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
Jan 22 Javascript
Vue 实现双向绑定的四种方法
Mar 16 Javascript
JavaScript获取用户所在城市及地理位置
Apr 21 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 替换模板变量实现步骤
2009/08/24 PHP
超级简单的php+mysql留言本源码
2009/11/11 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
图片自动更新(说明)
2006/10/02 Javascript
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
JQuery入门—编写一个简单的JQuery应用案例
2013/01/03 Javascript
javascript制作loading动画效果 loading效果
2014/01/14 Javascript
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
微信小程序前端源码逻辑和工作流
2016/09/25 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
2017/02/19 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
利用Python3分析sitemap.xml并抓取导出全站链接详解
2017/07/04 Python
Python多线程扫描端口代码示例
2018/02/09 Python
pandas多级分组实现排序的方法
2018/04/20 Python
python程序 创建多线程过程详解
2019/09/23 Python
关于Pytorch MaxUnpool2d中size操作方式
2020/01/03 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
美国知名的隐形眼镜电商:Contacts America
2019/11/19 全球购物
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
企业为何需要商业计划书
2013/12/26 职场文书
给物业的表扬信
2014/01/21 职场文书
物理专业大学生职业生涯规划书
2014/02/07 职场文书
党员承诺书格式
2014/05/21 职场文书
平遥古城导游词
2015/02/03 职场文书
带你学习MySQL执行计划
2021/05/31 MySQL
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏
python读取并查看npz/npy文件数据以及数据显示方法
2022/04/14 Python