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 相关文章推荐
IE和Firefox下javascript的兼容写法小结
Dec 10 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
Mar 17 Javascript
JavaScript动态修改背景颜色的方法
Apr 16 Javascript
JScript中的条件注释详解
Apr 24 Javascript
Jquery中基本选择器用法实例详解
May 18 Javascript
讲解JavaScript中for...in语句的使用方法
Jun 03 Javascript
JS实现六位字符密码输入器功能
Aug 19 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
Jan 09 Javascript
React 子组件向父组件传值的方法
Jul 24 Javascript
微信小程序实现bindtap等事件传参
Apr 08 Javascript
基于Vue SEO的四种方案(小结)
Jul 01 Javascript
vue+element table表格实现动态列筛选的示例代码
Jan 14 Vue.js
详解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/28 PHP
php中的ini配置原理详解
2014/10/14 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
phpstorm 配置xdebug的示例代码
2019/03/31 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
JS常用算法实现代码
2016/11/14 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
自定义事件解决重复请求BUG的问题
2017/07/11 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
2018/08/30 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
Python中list初始化方法示例
2016/09/18 Python
Python 删除连续出现的指定字符的实例
2018/06/29 Python
python画折线图的程序
2018/07/26 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
np.random.seed() 的使用详解
2020/01/14 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
《姥姥的剪纸》教学反思
2014/02/25 职场文书
护理助产毕业生的求职信
2014/03/02 职场文书
2014年后勤管理工作总结
2014/12/01 职场文书
企业百日安全活动总结
2015/05/07 职场文书