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