博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
div实现自适应高度的textarea,实现angular双向绑定
阅读量:5165 次
发布时间:2019-06-13

本文共 1200 字,大约阅读时间需要 4 分钟。

相信不少同学模拟过腾讯的QQ做一个聊天应用,至少我是其中一个。

过程中我遇到的一个问题就是QQ输入框,自适应高度,最高高度为3row。

如果你也像我一样打算使用textarea,那么很抱歉,你一开始就错了。

textarea不是不可以的,然后我是这样错的。(就是监听scroll 如果出现了,就增加1rows 的高度)然而这样真的很挫

textarea.bind('change','keydown'){    if(scrollTop > 0 ) {        textarea.rows += 1    }}

正确的打开方式应该是利用 html5 全局属性,然而在ios 移动端中,仅使用contenteditable,是无法获得焦点的,无法进行输入的,因此需要添加user-select属性

   //不同浏览器,支持度,和实现方式也有点不一样,android和ios默认webkit内核,所以使用这个够了

 

在angular中使用可编辑的div:——》 angular的ng-model指令只用于select,input,textarea,不适用于div,所以要进一步封装

/**   可编辑的div*       应用于发表评论中有表情的时候,div中添加img(表情)*       
*/app.directive('contenteditable', function() { return { restrict: 'A', require: '?ngModel', link: function(scope, element, attrs, ngModel) { if (!ngModel) return; ngModel.$render = function() { element.html(ngModel.$viewValue || ''); }; element.on('blur keyup change', function() { scope.$evalAsync(read); }); read(); // initialize function read() { var html = element.html(); if ( attrs.stripBr && html == '
' ) { //清除
html = ''; } ngModel.$setViewValue(html); } } };});

 

 

  

转载于:https://www.cnblogs.com/miaowwwww/p/5774865.html

你可能感兴趣的文章
特定字符序列的判断(1028)
查看>>
记一次报错信息
查看>>
判断数组内是否有几个元素之和等于m
查看>>
ExtJS(三)Ext.MessageBox工具类举例
查看>>
条件、循环、函数定义 练习
查看>>
RestAssured接口自动化测试之基础方法
查看>>
华为面试
查看>>
平衡二叉树(AVL Tree)
查看>>
【BZOJ3295】[Cqoi2011]动态逆序对 cdq分治
查看>>
【CF799E】Aquarium decoration 线段树
查看>>
大运飞天 鲲鹏展翅
查看>>
从ECMA到W3C
查看>>
OpenGL(十八) 顶点数组和抗锯齿(反走样)设置
查看>>
Activiti 删除key值相同的所有不同版本的流程定义
查看>>
软件工程--第十六周学习进度
查看>>
yii2 ActiveRecord多表关联以及多表关联搜索的实现
查看>>
搜狗输入法安装--ubuntu
查看>>
ps/2接口键盘的输入及显示
查看>>
在IntelliJ IDEA中安装Junit,TestNG
查看>>
C-Scanf连续调用多次并且存在%c的问题
查看>>