作者:老陈 | 来源:互联网 | 2022-06-20 12:33
这篇文章主要介绍了Vue中文本内容超出规定行数后展开收起的处理的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
文字比较难解释,直接看图应该就懂是要做什么了。
![](https://img.php1.cn/3cd4a/12bac/78c/0c375691524738ae.jpeg)
需求
工作中遇到的,需求就是超过四行得有个展开按钮,点击展开显示所有内容,不超过四行的话就不需要这个按钮并显示所有内容。
思路首先得判断文本自否超过四行,因为这些一般都是是前端异步请求然后后端发送过来,在组长的指导下,使用了 Vue 中的 nextTick 来监听 DOM 中是数据变化。接下来主要是 css 上的思路,其实上图可以分为两部分,如下图,标号1的部分展示前面三行,标号为2的部分会根据1的行数判断缩进的大小,然后展示第四行。最后通过背景色的控制让两者看上去是一段文字。
![](https://img.php1.cn/3cd4a/12bac/78c/35fbc93ff88902b2.jpeg)
代码
核心代码是中间那部分,其他的不用关注
{{title}}
为了证明楼下的那货不会对我造成影响
{{introduce}}
{{exchangeButton ? '展开' : '收起'}}
为了证明楼上的那货不会对我造成影响
点这试试一段比较长的文字
点这试试一段比较短的文字
演示动画
![](https://img.php1.cn/3cd4a/12bac/78c/db8645e89f8da809.gif)
另一种思路
简书中i_May的方法,思路有些不同,也可以参考下。
问题工作中该页面打包到测试环境在微信中打开后,三个省略号消失了,问题还在找,找到了会及时更新。因为符号可能会在行尾出现点显示问题,暂时还没找到解决办法,但出现概率较小,出现了也不影响。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。