文本框textarea是在网站中经常用到到多行文本输入标签,例如本文下面的留言输入框。一般情况下,我们会通过指定textarea的rows 和cols属性来控制大小。当在textarea输入较多文本超过预设行数时,就会出现侧边滚动条。这样难免会将部分文本遮挡,当想回顾已输入内容时,还 要去拖动滚动条,来来回回,煞是不爽。如果可以让textarea根据用户输入的文本内容自动扩展,就可以解决这个问题了,有助于改善用户体验。“autoresize”这款jquery插件就是用来解决这个问题的。
- 口说无凭,眼见为实。先看下面的演示效果飞飞Asp技!术乐园:
在该示例中可以看到textarea在扩展时使用了动画效果,比较平滑。当文本框扩展至一定高度时不再扩展,出现滚动条。这两点都可通过参数设置。 - 使用方法:
html代码定义文本框
<textarea id="test-comment" style="width: 400px; padding: 5px; height: 50px; display: block;"> 在这里输入内容,当内容超出文本框高度时,文本框会自动扩展 </textarea>
javascript代码
$(function(){ $('textarea#test-comment').autoResize({ // 文本框改变大小时触发事件,这里改变了文本框透明度 onResize : function() { $(this).css({opacity:0.8}); }, // 动画效果回调触发事件,这里改变了文本框透明度 animateCallback : function() { $(this).css({opacity:1}); }, // 动画效果持续时间(ms),默认150 animateDuration : 300, // 每次改变大小时,扩展(缩小)的高度(像素),默认20 extraSpace : 30, //当文本框高度大于多少时,不再扩展,出现滚动条,默认1000 limit: 200 }); })
插件的配置参数参考上面javascript代码中的注释。如果不需要动画效果,可设置animate属性为false(默认为true)。
|