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设置下拉框为只读的小技巧
Apr 10 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
Apr 10 Javascript
基于jquery实现的可编辑下拉框实现代码
Aug 02 Javascript
前端jquery部分很精彩
May 03 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
Jun 28 Javascript
DOM 事件的深入浅出(二)
Dec 05 Javascript
JS打开摄像头并截图上传示例
Feb 18 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
Mar 28 Javascript
Vue下拉框回显并默认选中随机问题
Sep 06 Javascript
JQuery省市联动效果实现过程详解
May 08 jQuery
Jquery高级应用Deferred对象原理及使用实例
May 28 jQuery
使用Vant完成DatetimePicker 日期的选择器操作
Nov 12 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代码
2016/08/08 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
jQuery事件绑定用法详解
2016/09/08 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
2017/10/24 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
2018/01/23 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
Python标准库之循环器(itertools)介绍
2014/11/25 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
Python简单实现子网掩码转换的方法
2016/04/13 Python
docker django无法访问redis容器的解决方法
2019/08/21 Python
python采集百度搜索结果带有特定URL的链接代码实例
2019/08/30 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
DataList 能否分页,请问如何实现?
2015/05/03 面试题
什么是反射?如何实现反射?
2016/07/25 面试题
无工作经验者个人求职信范文
2013/12/22 职场文书
数学系毕业生的自我评价
2014/01/10 职场文书
运动会广播稿400字
2014/01/25 职场文书
职工代表大会主持词
2014/04/01 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
本溪关门山导游词
2015/02/09 职场文书
小型企业的绩效考核制度模板
2019/11/21 职场文书
mongodb清除连接和日志的正确方法分享
2021/09/15 MongoDB