作者: 文章来源:
本文原地址:https://www.mimiwuqi.com/webqianduan/197378.html
今天项目需求需要实现一个回复评论的页面,设计师给的初始界面就是一个只有一行的框。然后当时就想这个交互该怎么实现比较好,这个功能还比较常见,用来获取文本的长宽(避免了计算不准的问题),主要用于实现 textarea 自动变长。

可以看到在我们使用 textarea 的时候,有时候需要感知内容的高度,然后动态撑开。(elementUI 的 textarea 就提供了 autosize 的功能。)
那我们也想实现这样的功能应该怎么办呢?
看上去这个方案是最妙的。那么如何构建相同的 DOM 呢?
window.getComputedStyle(el),然后就可以快乐的拿到计算后的属性。CONTEXT_STYLE = [ 'letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing']display:none 这个是不行的,因为 none 之后不会绘制了。也就获取不到宽高了。opacity:0 这个可以visibility: hidden; 这个也可以height:0;overflow:hidden 这个也可以,获取 scrollHeightz-index:-999 这也可以的。position:absolute;top:-9999px;left:-9999px 也是可以的更多 建站教程 请访问 https://www.mimiwuqi.com/webqianduan/