使用div模拟textarea,实现文本输入框高度自适应(附:js控制textarea实现文本输入框高度自适应)
2017-01-10 17:01
851 查看
一、使用textarea标签进行多行文本的输入有很多限制,比如不能实现高度自适应,会出现难看的滚动条等问题。
HTML5中添加了一个新属性contenteditable,该属性可以让input,textarea以外的不可编辑的标签具备可编辑功能;
用法如下:
二、如果不使用该属性,可以使用js控制textarea的高度;原理是当textarea出现滚动条时,增加其高度,使滚动条消失。
怎样判断是否出现滚动条,其方法是但元素的scrollHeight大于offsetHeight的时候,即出现了滚动条;
实现方法如下:
HTML5中添加了一个新属性contenteditable,该属性可以让input,textarea以外的不可编辑的标签具备可编辑功能;
用法如下:
//contenteditable="true" 当属性值为true的时候,可编辑标签内可以写入标签,对于复制的具有样式的内容,其样式会保留; <div contenteditable="true">我是可编辑的富文本框</div> //contenteditable="plaintext-only" 当属性值为plaintext-only时,该可编辑标签内只能写入纯文本的数据,对于复制的具有样式的内容,会转换为纯文本,而将样式标签等内容过滤掉; <div contenteditable="plaintext-only"></div>
二、如果不使用该属性,可以使用js控制textarea的高度;原理是当textarea出现滚动条时,增加其高度,使滚动条消失。
怎样判断是否出现滚动条,其方法是但元素的scrollHeight大于offsetHeight的时候,即出现了滚动条;
实现方法如下:
//html <textarea id="text"></textarea> //css #text{ font-size: 20px; overflow: hidden; //必须 } //js $('#text').on('input',function(){ if(text.scrollHeight>text.offsetHeight){ THeight += 20; //font-size的大小是20,因此每次给textarea的高度增加20px $('#text').css('height',THeight); } })
相关文章推荐
- div模拟textarea以css控制最大高度和最小高度实现高度自适应实例页面
- 用DIV+CSS模拟textarea,实现文本框高度自适应用户输入的文本
- div模拟textarea以实现高度自适应实例页面
- div模拟textarea以实现高度自适应实例页面
- textarea自适应高度,div模仿textarea可编辑实现自适应高度,placeholder使用图标
- js控制textarea输入框根据内容自动适应高度
- div模拟textarea实现高度自增长
- js实现textarea自适应高度
- js控制三列高度自适应DIV+CSS页面
- 使用js函数实现的通过输入框中数据的长度来控制光标聚焦位置
- js 实现2列 div 自适应高度
- div实现自适应高度的textarea实现angular双向绑定
- 无js实现div高度自适应布局
- js实现textarea根据内容大小自适应高度
- js实现textarea高度根据内容自适应
- div模拟textarea高度随文本变化
- js控制三列高度自适应DIV+CSS页面
- 使用div创建textArea无滚动条高度自适应
- jquery/js实现文本框根据输入内容input,textarea自适应高度
- js控制三列高度自适应DIV+CSS页面