ReadMore 展开阅读更多

该组件一般用于内容较长,预先收起一部分,点击展开全部内容的场景。

平台差异说明

AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序

基本使用

通过slot传入正文内容

  1. <template>
  2. <u-read-more>
  3. <rich-text :nodes="content"></rich-text>
  4. </u-read-more>
  5. </template>
  6. <script>
  7. export default {
  8. data() {
  9. return {
  10. // 这是一段很长的文字,也可能包含有HTML标签等内容
  11. content: `山不在高,有仙则名。水不在深,有龙则灵。斯是陋室,惟吾德馨。
  12. 苔痕上阶绿,草色入帘青。谈笑有鸿儒,往来无白丁。可以调素琴,阅金经。
  13. 无丝竹之乱耳,无案牍之劳形。南阳诸葛庐,西蜀子云亭。孔子云:何陋之有?`,
  14. }
  15. }
  16. }
  17. </script>

展开收起

配置toggletrue,展开后可以收起,否则展开后没有收起的按钮

  1. <u-read-more :toggle="true">
  2. <rich-text :nodes="content"></rich-text>
  3. </u-read-more>

配置展开高度

可以配置一个高度,单位rpx,只有slot传入的内容高度超出这个值,才会出现”展开阅读全文”字样的按钮

  1. <u-read-more show-height="600">
  2. <rich-text :nodes="content"></rich-text>
  3. </u-read-more>

异步初始化

有时候需要展示的内容是从后端获取的,组件内部的mounted生命周期初始化时,请求尚未回来,会导致 内容的高度在初始化有误差。可以在请求完毕渲染后(指的是this.$nextTick),通过ref调用组件的init方法,重新初始化

  1. <template>
  2. <u-read-more ref="uReadMore">
  3. <rich-text :nodes="content"></rich-text>
  4. </u-read-more>
  5. </template>
  6. <script>
  7. export default {
  8. data() {
  9. return {
  10. content: '',
  11. }
  12. },
  13. onLoad() {
  14. // 模拟后端请求
  15. setTimeout(() => {
  16. this.content = `山不在高,有仙则名。水不在深,有龙则灵。斯是陋室,惟吾德馨。
  17. 苔痕上阶绿,草色入帘青。谈笑有鸿儒,往来无白丁。可以调素琴,阅金经。
  18. 无丝竹之乱耳,无案牍之劳形。南阳诸葛庐,西蜀子云亭。孔子云:何陋之有?`,
  19. // 请注意上方已在组件中添加ref-uReadMore
  20. this.$nextTick(() => {
  21. this.$refs.uReadMore.init();
  22. })
  23. }, 2000);
  24. }
  25. }
  26. </script>

自定义样式

此组件上边部分有一个白色虚化的阴影,用以将点击区域与文字内容进行融合,如果您不想要这个阴影,可以调整shadow-style对象,此对象内部如下:

  1. {
  2. backgroundImage: "linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, #fff 80%)",
  3. paddingTop: "300rpx",
  4. marginTop: "-300rpx"
  5. }

如果您不想要阴影,将backgroundImage设置为none即可,关于paddingTopmarginTop自行调整至合适数值即可。

  1. <template>
  2. <u-read-more ref="uReadMore" :shadow-style="shadowStyle">
  3. <rich-text :nodes="content"></rich-text>
  4. </u-read-more>
  5. </template>
  6. <script>
  7. export default {
  8. data() {
  9. return {
  10. content: '',
  11. shadowStyle: {
  12. backgroundImage: "none",
  13. paddingTop: "0",
  14. marginTop: "20rpx"
  15. }
  16. }
  17. }
  18. }
  19. </script>

API

Props

参数说明类型默认值可选值
show-height内容超出此高度才会显示展开全文按钮,单位rpxString | Number400-
toggle展开后是否显示收起按钮Booleanfalsetrue
close-text关闭时的提示文字String展开阅读全文-
font-size提示文字的大小,单位rpxString | Number28-
open-text展开时的提示文字String收起-
color提示文字的颜色String#2979ff-
shadow-style对阴影的自定义处理,对象形式Object见上方说明-