othella 发表于 2013-1-29 07:27:18

采用scrollHeight来实现textarea框的自动加行或者减行

基于jquery实现的:
1.在textarea上绑定blur,keyup,scroll事件去check文本框的变化

2.check方法(scrollHeight)
var TEXTAREADATA = {minHeight:15,maxHeight:45,limitHeight:42};function checkIt(element){//element指textareavar minLimit = parseInt(TEXTAREADATA.minHeight,10);if (!$.browser.mozilla){minLimit+= 10;}if (element.scrollHeight <= minLimit){element.css('height', TEXTAREADATA.minHeight);return false;}if (element.scrollHeight > TEXTAREADATA.limitHeight){element.css('height', TEXTAREADATA.maxHeight);return false;}else{var newHeight = element.scrollHeight;if (!$.browser.mozilla){                //在FF下scrollHeight不包括padding设置的值。newHeight = newHeight - 10;//10这个值需要看textarea框样式,如果未设置padding,就不需要这个处理。}element.css('height', newHeight);}}

在IE会随着textarea的内容变化加减行,但是FF下只有在blur事件触发后才会减行。加行都是OK的。
页: [1]
查看完整版本: 采用scrollHeight来实现textarea框的自动加行或者减行