更新记录
1.0.0(2026-07-03)
下载此版本
初始版本
平台兼容性
uni-app(4.0)
| Vue2 |
Vue2插件版本 |
Vue3 |
Vue3插件版本 |
Chrome |
Chrome插件版本 |
Safari |
Safari插件版本 |
app-vue |
app-vue插件版本 |
app-nvue |
Android |
iOS |
鸿蒙 |
| √ |
1.0.0 |
√ |
1.0.0 |
√ |
1.0.0 |
√ |
1.0.0 |
√ |
1.0.0 |
- |
- |
- |
- |
| 微信小程序 |
微信小程序插件版本 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| √ |
1.0.0 |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
zv-text-preview
文本预览 / 展开折叠组件。超出指定行数后显示省略,支持展开与收起,并带有高度过渡动画。
基础用法
<zv-text-preview :content="text" :lines="2" />
参数说明
| 参数 |
类型 |
默认值 |
说明 |
| content |
String |
'' |
文本内容,支持纯文本或 HTML 富文本 |
| type |
String |
text |
内容类型:text 纯文本 / html 富文本 |
| lines |
Number |
2 |
折叠时显示的行数 |
| expanded / v-model:expanded |
Boolean |
false |
是否展开 |
| expandText |
String |
展开 |
展开按钮文字 |
| collapseText |
String |
收起 |
收起按钮文字 |
| expandStyle |
String |
'' |
展开按钮样式(行内 style) |
| collapseStyle |
String |
'' |
收起按钮样式(行内 style) |
| expandPosition |
String |
inline |
展开按钮位置,见下方 |
| collapsePosition |
String |
bottom-right |
收起按钮位置,见下方 |
| expandWrapStyle |
String |
'' |
展开按钮容器样式 |
| collapseWrapStyle |
String |
'' |
收起按钮容器样式 |
| textStyle |
String |
'' |
正文样式 |
| wrapStyle |
String |
'' |
外层容器样式 |
| duration |
Number |
300 |
展开 / 收起动画时长(ms) |
| maskColor |
String |
#ffffff |
行末展开按钮渐变遮罩色,需与背景色一致 |
按钮位置 expandPosition / collapsePosition
| 值 |
说明 |
inline |
仅 expand 可用,显示在最后一行末尾(带渐变遮罩) |
bottom-left |
显示在内容下方,左对齐 |
bottom-right |
显示在内容下方,右对齐 |
bottom-center |
显示在内容下方,居中 |
事件
| 事件 |
说明 |
回调参数 |
| expand |
展开时触发 |
— |
| collapse |
收起时触发 |
— |
| change |
展开状态变化 |
(expanded: boolean) |
| update:expanded |
v-model:expanded 更新 |
(expanded: boolean) |
插槽
| 插槽 |
说明 |
| expand |
自定义展开按钮内容 |
| collapse |
自定义收起按钮内容 |
使用示例
纯文本
<zv-text-preview
:content="longText"
:lines="2"
/>
富文本
<zv-text-preview
type="html"
:content="htmlContent"
:lines="2"
/>
自定义按钮样式与位置
<zv-text-preview
:content="longText"
:lines="2"
expandPosition="inline"
collapsePosition="bottom-right"
expandText="展开"
collapseText="收起"
:expandStyle="expandStyle"
:collapseStyle="collapseStyle"
:textStyle="textStyle"
/>
<script>
export default {
data() {
return {
longText: '文本超长展开折叠组件,超出指定的行数后,省略号...,显示文本...',
textStyle: 'font-size: 28rpx; color: #333; line-height: 1.6;',
expandStyle: 'color: #007aff; font-size: 28rpx;',
collapseStyle: 'color: #007aff; font-size: 28rpx;'
}
}
}
</script>
受控展开状态
<zv-text-preview
v-model:expanded="isExpanded"
:content="longText"
:lines="2"
@expand="onExpand"
@collapse="onCollapse"
/>
自定义按钮内容
<zv-text-preview :content="longText" :lines="2">
<template #expand>
<text style="color: #ff6600;">查看更多</text>
</template>
<template #collapse>
<text style="color: #ff6600;">收起内容</text>
</template>
</zv-text-preview>
说明
- 折叠态默认在最后一行末尾显示「展开」(
expandPosition="inline"),展开后在下方右对齐显示「收起」。
- 展开 / 收起通过
max-height 过渡实现动画效果。
- 富文本模式下,超出判断基于剥离 HTML 标签后的文本高度估算,复杂排版场景建议配合
textStyle 微调。
maskColor 需与页面背景色一致,行末「展开」按钮渐变遮罩才会自然。