您的位置:首页 > 其它

[转]autoTextarea-文本框根据输入内容自适应高度

2011-08-08 15:54 591 查看
在玩微博的时候我们可能会注意到一个细节就是不管是新浪微博还是腾讯微博在转发和评论的时候给你的默认文本框的高度都不会很高,这可能是版面的限制和用户通常只转播或者评论一个短句有关。但是当你输入超过一行文字的时候,文本框的高度就自动撑高了,大大改善了体验,这样用户就可以看到全部的文字。不用再去拖动文本框的滚动条。如图:

新浪微博:@feiwen8772(我的新浪微博,顺便做个广告,^_^)





腾讯微博:@feiwen8772(我的腾讯微博,顺便做个广告,^_^)



这些在平时的项目中挺实用的,所以抽空封装了一个文本框根据输入内容自适应高度的插件-autoTextarea:

01
(
function
($){
02
$.fn.autoTextarea =
function
(options) {
03
var
defaults={
04
maxHeight:
null
,
//文本框是否自动撑高,默认:null,不自动撑高;如果自动撑高必须输入数值,该值作为文本框自动撑高的最大高度
05
minHeight:$(
this
).height()
//默认最小高度,也就是文本框最初的高度,当内容高度小于这个高度的时候,文本以这个高度显示
06
};
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'
;
16
}
else
{
17
height =
this
.scrollHeight;
18
style.overflowY =
'hidden'
;
19
}
20
style.height =height  + 
'px'
;
21
}
22
});
23
});
24
};
25
})(jQuery);
调用:

1
$(
".chackTextarea-area"
).autoTextarea({maxHeight:220});
查看demo:http://www.css88.com/demo/autoTextarea/

转自《【jQuery插件】autoTextarea-文本框根据输入内容自适应高度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: