100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 文本框根据输入内容自适应高度的代码_表单特效

文本框根据输入内容自适应高度的代码_表单特效

时间:2018-10-27 08:10:50

相关推荐

文本框根据输入内容自适应高度的代码_表单特效

web前端|js教程

文本框,自适应高度

web前端-js教程

其实现代浏览器大多都支持文本框尺寸调节功能,绝大多数情况下却没有自动适应来得爽快,在网络上发现一方法比较简单的实现文本框高度自适应,于是封装了这个函数,准备以后应用到项目中。

源代码:

23:03文章更新:

感谢alucelx同学再次给力的帮助,大大简化了方法,更新代码为0.2版本,同时解决了兼容Opera浏览器,至此全兼容IE6+与现代浏览器!

在线演示: /js//autoArea/index.htm

autoTextarea.js

文库网站系统源码,ubuntu禁止待机黑屏,为什么tomcat用不了,java爬虫 报302,php笔试必背100题,大塘seo报价lzw

/**

* 文本框根据输入内容自适应高度

* @author tang bin

* @version 0.3

* @see /?p=1489

* @param {HTMLElement} 输入框元素

* @param {Number} 设置光标与输入框保持的距离(默认20)

* @param {Number} 设置最大高度(可选)

*/

var autoTextarea = function (elem, extra, maxHeight) {

extra = extra || 20;

var isFirefox = !!document.getBoxObjectFor || mozInnerScreenX in window,

isOpera = !!window.opera && !!window.opera.toString().indexOf(Opera),

addEvent = function (type, callback) {

elem.addEventListener ?

elem.addEventListener(type, callback, false) :

elem.attachEvent(on + type, callback);

},

getStyle = elem.currentStyle ? function (name) {

var val = elem.currentStyle[name];

if (name === height && val.search(/px/i) !== 1) {

var rect = elem.getBoundingClientRect();

return rect.bottom - rect.top -

parseFloat(getStyle(paddingTop)) -

parseFloat(getStyle(paddingBottom)) + px;

};

return val;

} : function (name) {

return getComputedStyle(elem, null)[name];

},

minHeight = parseFloat(getStyle(height));

elem.style.maxHeight = elem.style.resize = one;

var change = function () {

var scrollTop, height,

padding = 0,

style = elem.style;

if (elem._length === elem.value.length) return;

elem._length = elem.value.length;

if (!isFirefox && !isOpera) {

padding = parseInt(getStyle(paddingTop)) + parseInt(getStyle(paddingBottom));

};

scrollTop = document.body.scrollTop || document.documentElement.scrollTop;

elem.style.height = minHeight + px;

if (elem.scrollHeight > minHeight) {

if (maxHeight && elem.scrollHeight > maxHeight) {

height = maxHeight - padding;

style.overflowY = auto;

} else {

height = elem.scrollHeight - padding;

style.overflowY = hidden;

};

style.height = height + extra + px;

scrollTop += parseInt(style.height) - elem.currHeight;

document.body.scrollTop = scrollTop;

document.documentElement.scrollTop = scrollTop;

elem.currHeight = parseInt(style.height);

};

};

addEvent(propertychange, change);

addEvent(input, change);

addEvent(focus, change);

change();

};

测试代码:

文本框根据输入内容自适应高度

asp报名源码,vscode 选中整行,ubuntu 复制,tomcat建项目,sqlite的多进程并发,苹果cmsV8试看插件,前端学习框架工程化教程,爬虫爬取晋江vip章节,破解防盗链php,昆明seo新站策划,帝国网站调用图片集,在线考试管理系统网页模板,bootstrap 学校网站模板lzw

#textarea { font: 1.4em/1.8em Arial; overflow: hidden; width: 550px; height: 6em; padding:10px; }

var text = document.getElementById(“textarea”),

tip = ‘想写点什么..’;

autoTextarea(text);// 调用

text.value = tip;

text.onfocus = function () {

if (text.value === tip) text.value = ”;

};

text.onblur = function () {

if (text.value === ”) text.value = tip;

};

域名停靠程序源码,vscode sas,ubuntu挂载sd卡,tomcat独占,sqlite 哪个版本,服务器 网卡主备,移动端自适应轮播插件,前端框架安装步骤,卧室 爬虫,php语言的优点,熊掌号seo,环保网站模版,介绍旅游景点的网页,家校联络本模板,图片在页面中上下左右居中显示js,企业进销存管理系统ppt,aes 程序lzw

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。