JS实现自适应高度表单文本框的方法

作者:闭包旅人时间:2026-10-28 22:53:57浏览:447

本文介绍了一种使用JavaScript实现文本框高度随内容自动调整的方法。通过创建一个隐藏的阴影文本框来测量内容实际高度,并监听输入事件动态更新可见文本框的CSS高度,从而解决固定高度文本框在内容增多时显示不全的问题。

JS实现自适应高度表单文本框的方法

本文详细介绍了一种利用JavaScript实现表单文本框高度自适应的技术方案,供开发者参考使用。

具体实现代码示例如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>JS实现自适应高度的表单文本框</title>
<style type="text/css">
#shadow, #text { font: 12px/16px Arial; width: 200px; overflow: hidden; height: 16px; }
#shadow { position: absolute; border-width: 0px; padding: 0px; visibility: hidden; }
#text { resize: none; }
</style>
<script type="text/javascript">
window.onload = function () {
var text = document.getElementById("text"); //用户看到的文本框
var shadow = document.getElementById("shadow"); //隐藏的文本框
text.oninput = //非IE的
text.onpropertychange = //IE的
onchange;
            
function onchange() {
shadow.value = text.value;
setHeight();
setTimeout(setHeight, 0); //针对IE 6/7/8的延迟, 否则有时会有一个字符的出入
function setHeight() { text.style.height = shadow.scrollHeight + "px"; }
            }
        };
</script>
</head>
<body>
<textarea id="text"></textarea>
<textarea id="shadow"></textarea>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

作者最新文章