vue中文字显示固定行数后显示浮层

文字显示固定行数后显示浮层

之前写vue项目的时候遇到了一个文字固定行数显示浮层提示,开始也试过一些方法,效果不是很理想,后面找到了一个比较好的方法,在这里分享给大家,希望可以给大家一些启发,也欢迎大家共同讨论。

145行为文字在这里插入图片描述
#remarks–>给文字内容加上的id名

在这里插入图片描述
需要引入jquery之后,获取单个文字的宽度,然后判断将内容区域的width乘以(*)行数与字符宽度比较,判断是否需要显示浮层

在开发,经常会遇到需要在界面上显示固定行数的文本,然后通过一个标识(如“···展开”)提示用户可以展开查看更多内容。点击这个标识后,隐藏的文本会展开显示,同时显示一个“收起”按钮。这种交互方式在用户界面设计非常常见,它能够有效地管理内容的显示空间,提高用户体验。 实现这种交互功能的方法有很多,以下是两种常见的实现方式: 1. 使用JavaScript和CSS: - CSS用于设置文本显示行数以及“···展开”和“收起”按钮的样式。 - JavaScript用于监听按钮的点击事件,通过切换CSS类或者操作DOM来控制文本的显示和隐藏。 2. 使用前端框架(如Vue.js、React等): - 在模板定义一个初始高度限制的元素用于显示固定行数的文本,并绑定一个点击事件处理函数。 - 在组件的状态维护一个变量来控制内容的展开和收起。 - 点击事件处理函数会切换状态变量,根据状态变量来动态更新文本显示区域的高度或内容,以及按钮显示的文本。 例如,在Vue.js,可以通过以下方式实现: ```html <template> <div> <div v-if="!isExpanded" class="line-clamp"> {{ truncatedText }} <span class="expand-link" @click="toggleExpand">···展开</span> </div> <div v-else class="expanded-content"> {{ fullText }} <span class="collapse-link" @click="toggleExpand">收起</span> </div> </div> </template> <script> export default { data() { return { fullText: '这里是完整的文本内容...', truncatedText: '这里是截断后的文本内容...', isExpanded: false }; }, methods: { toggleExpand() { this.isExpanded = !this.isExpanded; } } }; </script> <style> .line-clamp { /* CSS样式用于设置显示固定行数 */ display: -webkit-box; -webkit-line-clamp: 3; /* 限制在3行 */ -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; } .expand-link { /* 展开链接样式 */ cursor: pointer; } </style> ``` 在这个例子,`.line-clamp` 类用于限制文本显示行数,并通过 `-webkit-line-clamp` 属性实现。点击“···展开”时,通过 `toggleExpand` 方法切换 `isExpanded` 状态变量,从而控制显示完整的文本和“收起”按钮。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值