六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 185|回复: 0

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

[复制链接]

升级  6%

15

主题

15

主题

15

主题

秀才

Rank: 2

积分
59
 楼主| 发表于 2013-1-29 07:27:18 | 显示全部楼层 |阅读模式
基于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[0].scrollHeight <= minLimit){element.css('height', TEXTAREADATA.minHeight);return false;}if (element[0].scrollHeight > TEXTAREADATA.limitHeight){element.css('height', TEXTAREADATA.maxHeight);return false;}else{var newHeight = element[0].scrollHeight;if (!$.browser.mozilla){                //在FF下scrollHeight不包括padding设置的值。newHeight = newHeight - 10;//10这个值需要看textarea框样式,如果未设置padding,就不需要这个处理。}element.css('height', newHeight);}}

在IE会随着textarea的内容变化加减行,但是FF下只有在blur事件触发后才会减行。加行都是OK的。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表