javascript - 如何扩展文本区域以垂直和水平适应文本?

标签 javascript jquery html css

我如何使用 html、css 和 jquery 做这样的事情?

我发现了这个问题 Textarea to resize based on content length但它只会扩展文本区域的高度。

我希望我的文本区域能够精确地模仿用户输入的内容。因此,如果用户将文本写入一行,则直到用户点击“输入”,行才会结束。 textarea 的宽度可以大于窗口。高度也一样。

我也在寻找允许我更改字体大小和调整文本区域大小以适应它的解决方案。

有没有人有想法?

最佳答案

感谢大家的建议和回复,但最后我提出了自己的解决方案。

所以我用了这个Textarea to resize based on content length作为扩展文本区域高度的脚本。

为了扩展 textarea 的宽度,我创建了一个隐藏的 div,我从 textarea 中复制文本并递归地将 div 的宽度分配给 textarea。当然,您必须为两个元素设置相同的文本样式。

此外,由于我希望文本区域能够“无限扩大”,这就是为什么我也更改 html 和 body 的宽度。

function textAreaAdjust(o) {
    o.style.height = "1px";
    o.style.height = (90+o.scrollHeight)+"px";
    x = $('textarea').val().replace(/&/g, '&')
     .replace(/>/g, '>')
     .replace(/</g, '&lt;')
     .replace(/ /g, '&nbsp;')
     .replace(/\n/g, '<br>');
    $('div').html(x);
    $('html').css('width',$('div').width()+50);
    $('body').css('width',$('html').width());
    $('textarea').css('width',$('html').width());
}

关于javascript - 如何扩展文本区域以垂直和水平适应文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30761046/

相关文章:

javascript - 如何使用 jQuery 代码解决此 setCustomValidity 解除绑定(bind)问题

javascript - PrototypeJS 到 jQuery |文档.viewport

javascript - 使用 Babel、webpack 和 Node.js 使导出默认工作

javascript - 如何在页面向下滚动时将两个元素分开?

javascript - 在 html 中嵌入本地 asciinema 文件

javascript - Dblclick 监听器在我的代码中仅触发一次

javascript - $.post 验证表单字段并在出现错误时阻止提交

javascript - Jquery - 我们可以通过 .attr 更改 select 标记中的 onchange 事件吗?

html - CSS,使用显示 :table with before pseudo element

javascript - 使用 jQuery 设置随机值的字体大小?