js中contenteditable多行文本自动增高

谈到多行文本框,大家立刻就会想到使用textarea,使用textarea着实方便,但就是有一点不太好,不能自动增高,只能指定相应的列和行的字数或者直接css给高宽。

自动增高在某些时候还是需要的,比如类似发微博的输入框,它就是一个典型,需要这样的需求:文本框有个默认高度,输入文字超出这个高度后会自动增高,还要有一个最高的限度,超过这个限度以后就会出现垂直滚动条。

如果使用textarea来完成这个需求,还需要配合js来监听文本高度的变化来动态改变文本框的高度,这样就很不方便了,尤其是在移动端的时候就不科学了,这个时候可以使用一个html5的新属性contenteditable。

如:

<div contenteditable="true" class="box" id="box" >
           
</div>
<style>
.box{width:200px;max-height:100px;border:1px solid #ccc;overflow-y:auto;overflow-x:hidden;}
</style>

只要指定contenteditable属性值为true,div就变成可以编辑的了,并且会随着内容增加自动增高,然后我们给div一个最大高度,就可以实现上面所说的需求。

时间: 2024-09-26 17:16:36

js中contenteditable多行文本自动增高的相关文章

js中dijit.form.DateTextBox日期自动转化方法详解

调查了一下,可以用下面的代码来解决. 如下代码:  代码如下 复制代码 dojo.declare("net.yutuo.dojo.DateTextBox", [dijit.form.DateTextBox], {        validator: function(value, constraints) {         value = this.myParse(value, constraints);         return (new RegExp("^(?:&q

javascript-怎么做网页自动登录?java+jsp,在js中做这个功能

问题描述 怎么做网页自动登录?java+jsp,在js中做这个功能 怎么做网页自动登录?java+jsp,在js中做这个功能,就是有个checkbox(30天内自动登录),选中之后,登录成功后30天内自动登录 解决方案 用Cookie,把用户和密码保存到本地 解决方案二: 勾选好checkbox 将用户名和密码保存到cookie中返回到客户端,下一次进入到登录界面时候获取该cookie从中取出用户名和密码,进行登录. 解决方案三: 就是保存到cookie 中,,下次登录直接送cookie中读取

js中的闭包之我理解

闭包是一个比较抽象的概念,尤其是对js新手来说.书上的解释实在是比较晦涩,对我来说也是一样. 但是他也是js能力提升中无法绕过的一环,几乎每次面试必问的问题,因为在回答的时候.你的答案的深度,对术语的理解以及js内部解释器的运作 方式的描述,都是可以看出你js实际水平的.即使你没答对,也能让考官对你的水平有个评估.那么我先来说说我对js中的闭包的理解. 闭包是很多语言都具备的特性,在js中,闭包主要涉及到js的几个其他的特性:作用域链,垃圾(内存)回收机制,函数嵌套,等等. 在理解闭包以前.最好

js中parseInt函数浅谈

这篇文章介绍了Js中的parseInt函数,有需要的朋友可以参考一下   从很热门的实例parseInt("09")==0说起. parseInt(number,type)这个函数后面如果不跟第2个参数来表示进制的话,默认是10进制. 比如说parseInt("010",10)就是10进制的结果:10, parseInt("010",2)就是2进制的结果:2, parseInt("010",8)就是8进制的结果:8, pars

JS中Date日期函数中的参数使用介绍

本文为大家详细介绍下JS中Date日期函数中的参数在实际使用中的介绍,感兴趣的朋友不要错过 要创建一个一个日期对象,可以使用以下的方式:   代码如下: var now=new Date()    当然,函数中没有传递任何参数,表示此对象now自动获取了当前的时间.    如果想要创建一个自定义时间的对象,则要对Date()进行参数的传递.而这个参数,必须是毫秒数(UTC时间1970年1月1日午夜起至自定义时间为止的毫秒数).    我们可以使用Date.parse()和Date.UTC()来获

《Ember.js实战》——2.2 自动更新模板

2.2 自动更新模板 Ember.js默认使用Handlebars.js模板引擎.Ember Handlebars实现的一个关键点是无论何时将模板与底层数据联系起来,Ember.js都会在应用各层之间创建双向绑定.在第1章记事本应用程序开发过程中你已经了解了相关工作机制. 思考一下代码清单2-2里的notes/note模板代码. 代码清单2-2 重访notes/note模板 这个示例中包含了两种绑定,第一种是通过Handlebars表达式实现模板绑定:第二种是通过Binding关键字在自定义视图

初识js中的闭包

今天看了关于js闭包方面的文章,还是有些云里雾里,对于一个菜鸟来说,学习闭包确实有一定的难度,不说别的,能够在网上找到一篇优秀的是那样的不易. 当然之所以闭包难理解,个人觉得是基础知识掌握的不牢,因为闭包牵扯到一些前面的东西,比如作用域\等等,如果连基本的作用域都没有弄清楚,自然不可能搞懂闭包,还有就是对js的实践比较少,因为你根本就不知道什么时候要用这东西,自然谈不上对闭包的深刻理解. 今天我就简单的说说我目前所理解的闭包,当然可能不完全正确,但是我相信会给你一定的启发.   首先我们来谈谈j

彻底理解js中this

相关博文:http://blog.csdn.net/libin_1/article/details/49996815 彻底理解js中this的指向,不必硬背. 首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然网上大部分的文章都是这样说的,虽然在很多情况下那样去理解不会出什么问题,但是实际上那样理解是不准确的,所以在你理解this的时候会有种琢磨不

JavaScript Event Loop机制详解与Vue.js中nextTick的实践应用

本文依次介绍了函数调用栈.MacroTask 与 MicroTask 执行顺序.浅析 Vue.js 中 nextTick 实现等内容;本文中引用的参考资料统一声明在 JavaScript 学习与实践资料索引. 1. 事件循环机制详解与实践应用 JavaScript 是典型的单线程单并发语言,即表示在同一时间片内其只能执行单个任务或者部分代码片.换言之,我们可以认为某个同域浏览器上下中 JavaScript 主线程拥有一个函数调用栈以及一个任务队列(参考 whatwg 规范);主线程会依次执行代码