在玩微博的时候我们可能会注意到一个细节就是不管是新浪微博还是腾讯微博在转发和评论的时候给你的默认文本框的高度都不会很高,这可能是版面的限制和用户通常只转播或者评论一个短句有关。但是当你输入超过一行文字的时候,文本框的高度就自动撑高了,大大改善了体验,这样用户就可以看到全部的文字。不用再去拖动文本框的滚动条。如图:
新浪微博:@feiwen8772(我的新浪微博,顺便做个广告,^_^)
腾讯微博:@feiwen8772(我的腾讯微博,顺便做个广告,^_^)
这些在平时的项目中挺实用的,所以抽空封装了一个文本框根据输入内容自适应高度的插件-autoTextarea:
02 |
$.fn.autoTextarea = function (options) { |
05 |
minHeight:$( this ).height() |
07 |
var opts = $.extend({},defaults,options); |
08 |
return $( this ).each( function () { |
09 |
$( this ).bind( "paste cut keydown keyup focus blur" , function (){ |
10 |
var height,style= this .style; |
11 |
this .style.height = opts.minHeight + 'px' ; |
12 |
if ( this .scrollHeight > opts.minHeight) { |
13 |
if (opts.maxHeight && this .scrollHeight > opts.maxHeight) { |
14 |
height = opts.maxHeight; |
15 |
style.overflowY = 'scroll' ; |
17 |
height = this .scrollHeight; |
18 |
style.overflowY = 'hidden' ; |
20 |
style.height = height + 'px' ; |
调用:
1 |
$( ".chackTextarea-area" ).autoTextarea({maxHeight:220}); |
查看demo:http://www.css88.com/demo/autoTextarea/
转自《【jQuery插件】autoTextarea-文本框根据输入内容自适应高度》
--Edit by Cherry