textarea的高度随输入文字的多少变化

建议采用方法2

<textarea name="textarea" id="textarea" style=‘overflow-y: hidden;height:20px‘ onpropertychange="this.style.height = this.scrollHeight + ‘px‘;" oninput="this.style.height = this.scrollHeight + ‘px‘;">我是内容</textarea>
<script>

document.getElementById("textarea").style.height = document.getElementById("textarea").scrollHeight + 10 + "px";

</script>

方法2

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
*{margin:0; padding:0;}
.t{width:20em; font-size:12px; font-family:Arial, "宋体", sans-serif; line-height:25px; border:1px solid #09F; }
.t pre{width:20em;font-family:Arial, "宋体", sans-serif; }
pre{
white-space:pre-wrap;
white-space:-moz-pre-wrap;
white-space:-pre-wrap;
white-space:-o-pre-wrap;
word-wrap:break-word;
}
.box{width:240px;margin:50px auto; padding:15px; background:#ccc; border:1px solid #bbb;}
</style>
</head>

<body>
<div class="box">
    <textarea id="t" class="t"  onkeyup="d()" style="height:25px; overflow:hidden"> </textarea>
</div>
<div class="t" id="d" style="visibility:hidden;"></div>
<script language="javascript">
function d(){
    var d = document.getElementById("d");
    var t = document.getElementById("t");
    var val = t.value;
    d.innerHTML ="<pre>" +val+" "+"</pre>";
    t.style.height = (d.offsetHeight-2) + "px";
    if(val == ""){
        t.value = " ";    
    }
}
</script>
</body>
</html>

时间: 2024-08-07 14:25:31

textarea的高度随输入文字的多少变化的相关文章

css输入框文字点击消失输入文字颜色变深JQ特效

css输入框文字点击消失输入文字颜色变深JQ特效,输入框原始有默认说明文字内容,鼠标点击输入框后文字消失,鼠标离开默认文字又显示,如果输入框输入新文字内容,新输入文字颜色变深变化. CSS输入框文字点击消失输入文字颜色变深效果截图 输入框原始文字与输入文字颜色变化说明:上海治疗阳痿哪家好默认输入框文字颜色比较浅,鼠标点击输入框内原始文字消失,鼠标离开原始文字又显示,如果新输入文字,此时新输入文字颜色有变化(根据需要可以设置). 使用说明上海最好的性病医院:输入框默认的文字与input.js里代码

Jquery实现 TextArea 文本框根据输入内容自动适应高度

原文 Jquery实现 TextArea 文本框根据输入内容自动适应高度 在玩微博的时候我们可能会注意到一个细节就是不管是新浪微博还是腾讯微博在转发和评论的时候给你的默认文本框的高度都不会很高,这可能是版面的限制和用户通常只转播或者评论一个短句有关.但是当你输入超过一行文字的时候,TextArea自动适应高度,大大改善了体验,这样用户就可以看到全部的文字.不用再去拖动文本框的滚动条. 如下图: 这些在平时的项目中挺实用的,所以抽空封装了一个文本框根据输入内容自适应高度的插件 - TextArea

textarea自适应高度

最近做项目遇见了这个自适应高度的问题,也在网上找了些资料,大多选择用DIV模拟textarea,但是这样就有安全性的问题,因为你是可以直接将HTML代码输入进去的. 接下来介绍的这种办法是采用两个textarea,其中一个textarea设置其absolute,设置其不可见.当输入文本的textarea的值变化时,将原本的textarea中的值copy到新的 textarea中,这样可以准确计算高度(注意在copy节点的时候新旧textarea的宽度是一样的). 为什么不直接用原textarea

dom 输入文字模拟滚动

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style> #div1{ width:30px; height:500px; background:#000; position:absolute; left:10px; top:10px; } #div2{ width:30px; height:30p

在窗体上创建自己的光标并输入文字

我们知道在文本框等可以接收输入的组件中,我们可以看到闪烁的光标,并可以输入文字,如果我们在,比如窗体上时,因为不支持输入,也无法显示闪烁的光标,那我们 有办法做自己的输入吗?当然可以,下面我们演示在Form上来输入文字. 用到的API函数如下 GetTextMetrics:获取程序当前的字体信息,存放到TEXTMETRIC结构中 CreateCaret:为系统插入标记创建一个新的形状,并且将插入标记的属主关系指定给特定的窗口.插入标记的形状.可以是线.块或位图 ShowCaret:显示光标 Se

div模拟textarea自适应高度

之前在公司做项目的时候,有这么一个需求,要我写一个评论框,可以随着评论的行数增加而自动扩大,最开始我想用textarea实现,但是后来尝试后发现textarea并不适合,textarea的高度不会随着输入行数的增多而增大,于是我上网寻求了下帮助,发现大神张鑫旭的这篇文章<div模拟textarea文本域轻松实现高度自适应>,成功解决我的问题 代码如下: 1 1 <!DOCTYPE html> 2 2 <html lang="en"> 3 3 <

jQuery表单输入文字统计字数插件

这是一款非常实用的jQuery表单输入文字计数插件.该插件可以设置某个输入框或textarea可输入的最大文字数,当用户输入文字的时候,插件会将字数倒计数显示,提示用户还可以输入多少个文字,并且显示的数字随着数字的减少会越来越清晰. 效果演示:http://www.htmleaf.com/Demo/201503281587.html 下载地址:http://www.htmleaf.com/jQuery/Form/201503281586.html

js对输入文字个数的限制...

发表留言或者微博的时候,对输入文字个数的限制,下面分两种情况,每种分别介绍两种实现方式: 第一种:一个汉字算一位,两个字母或符号算一位. 通过ASCII编码来判断 textarea.onkeyup = function(){ //[^\x00-\xff]即ASCII编码不在0-255的字符,也就是汉子了,先把所有汉子换成任意两个字符,最后除以2,得到一个字符 var n = 150- Math.floor(this.value.replace(/[^\x00-\xff]/g,"aa")

HTML直接在DIV里输入文字的方法

在做aJax留言的时候,发现用textarea留言非常别扭,有右边的那个滑动动条的东东看着特别别扭,用CSS去掉后结果发现IE9以下的浏览器还不支持,所以就想,DIV里可不可以直接输入文字,下面放出DIV输入文字的代码 <div contenteditable="true" style="width:100px;height:50px;border:1px solid red;word-wrap:break-word;overflow:hidden;">