uniapp 富文本点击查看更多,如果内容超多出3行显示,未超过隐藏,显示所有富文本内容
时间: 2023-08-22 11:09:44 浏览: 239
你可以使用 `uniapp` 的 `v-html` 指令来渲染富文本内容,并结合一些条件判断来实现点击查看更多的功能。以下是一个示例代码:
```html
<template>
<div>
<div v-html="content" :style="contentStyle"></div>
<div v-if="isShowMore" @click="toggleMore">
<span v-if="isExpanded">收起</span>
<span v-else>查看更多</span>
</div>
</div>
</template>
<script>
export default {
data() {
return {
content: '这是一段富文本内容...',
isExpanded: false,
maxLines: 3,
lineClampStyle: `-webkit-line-clamp: ${this.maxLines};`,
contentStyle: '',
};
},
computed: {
isShowMore() {
// 计算文本是否超过指定行数
const div = document.createElement('div');
div.innerHTML = this.content;
div.setAttribute('style', `display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; ${this.lineClampStyle}`);
document.body.appendChild(div);
const isShow = div.clientHeight < div.scrollHeight;
document.body.removeChild(div);
return isShow;
},
},
methods: {
toggleMore() {
this.isExpanded = !this.isExpanded;
this.contentStyle = this.isExpanded ? '' : this.lineClampStyle;
},
},
};
</script>
```
此示例通过计算文本是否超过指定行数来决定是否显示"查看更多"按钮,点击按钮时切换文本的展开/收起状态。你可以根据需要修改示例中的样式和逻辑。希望对你有帮助!
阅读全文