Jquery实现 TextArea 文本框根据输入内容自动适应高度
2014-05-18 01:37
771 查看
原文 Jquery实现 TextArea 文本框根据输入内容自动适应高度
在玩微博的时候我们可能会注意到一个细节就是不管是新浪微博还是腾讯微博在转发和评论的时候给你的默认文本框的高度都不会很高,这可能是版面的限制和用户通常只转播或者评论一个短句有关。但是当你输入超过一行文字的时候,TextArea自动适应高度,大大改善了体验,这样用户就可以看到全部的文字。不用再去拖动文本框的滚动条。
如下图:
这些在平时的项目中挺实用的,所以抽空封装了一个文本框根据输入内容自适应高度的插件 - TextArea。
我们来看看代码:
jquery代码:
(function($){
$.fn.autoTextarea = function(options) {
var defaults={
maxHeight:null,//文本框是否自动撑高,默认:null,不自动撑高;如果自动撑高必须输入数值,该值作为文本框自动撑高的最大高度
minHeight:$(this).height() //默认最小高度,也就是文本框最初的高度,当内容高度小于这个高度的时候,文本以这个高度显示
};
var opts = $.extend({},defaults,options);
return $(this).each(function() {
$(this).bind("paste cut keydown keyup focus blur",function(){
var height,style=this.style;
this.style.height = opts.minHeight + 'px';
if (this.scrollHeight > opts.minHeight) {
if (opts.maxHeight && this.scrollHeight > opts.maxHeight) {
height = opts.maxHeight;
style.overflowY = 'scroll';
} else {
height = this.scrollHeight;
style.overflowY = 'hidden';
}
style.height = height + 'px';
}
});
});
};
})(jQuery);
调用代码:
$(".chackTextarea-area").autoTextarea({
maxHeight:220,//文本框是否自动撑高,默认:null,不自动撑高;如果自动撑高必须输入数值,该值作为文本框自动撑高的最大高度
})
DEMO页面:http://www.yuzi.me/Demo/autoTextArea.html
在玩微博的时候我们可能会注意到一个细节就是不管是新浪微博还是腾讯微博在转发和评论的时候给你的默认文本框的高度都不会很高,这可能是版面的限制和用户通常只转播或者评论一个短句有关。但是当你输入超过一行文字的时候,TextArea自动适应高度,大大改善了体验,这样用户就可以看到全部的文字。不用再去拖动文本框的滚动条。
如下图:
这些在平时的项目中挺实用的,所以抽空封装了一个文本框根据输入内容自适应高度的插件 - TextArea。
我们来看看代码:
jquery代码:
(function($){
$.fn.autoTextarea = function(options) {
var defaults={
maxHeight:null,//文本框是否自动撑高,默认:null,不自动撑高;如果自动撑高必须输入数值,该值作为文本框自动撑高的最大高度
minHeight:$(this).height() //默认最小高度,也就是文本框最初的高度,当内容高度小于这个高度的时候,文本以这个高度显示
};
var opts = $.extend({},defaults,options);
return $(this).each(function() {
$(this).bind("paste cut keydown keyup focus blur",function(){
var height,style=this.style;
this.style.height = opts.minHeight + 'px';
if (this.scrollHeight > opts.minHeight) {
if (opts.maxHeight && this.scrollHeight > opts.maxHeight) {
height = opts.maxHeight;
style.overflowY = 'scroll';
} else {
height = this.scrollHeight;
style.overflowY = 'hidden';
}
style.height = height + 'px';
}
});
});
};
})(jQuery);
调用代码:
$(".chackTextarea-area").autoTextarea({
maxHeight:220,//文本框是否自动撑高,默认:null,不自动撑高;如果自动撑高必须输入数值,该值作为文本框自动撑高的最大高度
})
DEMO页面:http://www.yuzi.me/Demo/autoTextArea.html
相关文章推荐
- Jquery实现 TextArea 文本框根据输入内容自动适应高度
- jquery/js实现文本框根据输入内容input,textarea自适应高度
- textarea自动换行,且文本框根据输入内容自适应高度
- 【记录】用Javascript实现文本框textarea高度随内容自动适应增长收缩
- jQuery简单实现iframe的高度根据页面内容自适应的方法
- 让文本框textarea自动适应内容的高度
- [转]autoTextarea-文本框根据输入内容自适应高度
- 让文本框textarea自动适应内容的高度
- flex布局无法自动适应的bug以及实现textarea根据内容自适应
- 【jQuery插件】autoTextarea-文本框根据输入内容自适应高度
- jQuery简单实现iframe的高度根据页面内容自适应的方法
- jQuery插件——autoTextarea-文本框根据输入内容自适应高度
- 让文本框textarea自动适应内容的高度
- 让文本框textarea自动适应内容的高度
- 【jQuery插件】autoTextarea-文本框根据输入内容自适应高度的实例页面
- jQuery简单实现iframe的高度根据页面内容自适应的方法
- js控制textarea输入框根据内容自动适应高度
- 让文本框textarea自动适应内容的高度
- Jquery实现textarea根据文本内容自适应高度
- Jquery实现<textarea>根据内容自动改变大小