Taro多行文本最多展示5行,超出“查看更多”展示,点击弹层

Taro中,页面需求:

多行文本,展示最多展示5行,超出5行,展示"查看更多"按钮,点击弹层展示文本详细信息。

弹层代码就不说了,着重说一下怎么获取区域高度~

1.区域设置max-height,用于控制展示区域,最多5行

2.文本区域设置id名称,通过createSelectorQuery方法获取区域高度

3.文本设置line-height高度,乘以5

4.超出则说明文本展示已高于5行

bash 复制代码
initPageHeight = () => {
    setTimeout(() => {
      if (process.env.TARO_ENV === 'weapp') {
        createSelectorQuery()
          .select('#ruleText')
          .boundingClientRect((res) => {
            if (res) {
              const lineHeight = getPx(36);
              //默认展示5行,点击查看更多
              this.setState({ showMore: res.height > lineHeight * 5 });
            } else {
              this.initPageHeight();
            }
          })
          .exec();
      } else if (process.env.TARO_ENV === 'alipay') {
        const query = createSelectorQuery();
        query.select('#ruleText').boundingClientRect();
        query.exec((res) => {
          const height = res?.[0]?.height;
          if (height) {
            const lineHeight = getPx(36);
            this.setState({ showMore: res.height > lineHeight * 5 });
          }
        });
      }
    }, 400);
  };

示例图如下

相关推荐
艾莉丝努力练剑2 分钟前
【MYSQL】MYSQL学习的一大重点:MYSQL数据类型
android·linux·数据库·人工智能·学习·mysql·网络安全
惶了个恐4 分钟前
Linux系统编程第十弹——sqlite3
数据库
c++之路6 分钟前
Ubuntu 22.04 完整安装与配置指南(VMware + 系统优化 + 开发环境)
linux·数据库·ubuntu
pangares7 分钟前
MySQL中between and的基本用法
android·数据库·mysql
weixin_4434785110 分钟前
flutter学习之状态管理相关组件
javascript·学习·flutter
喵叔哟16 分钟前
8. 【Blazor全栈开发实战指南】--路由与导航
数据库·微服务·.net
liqianpin122 分钟前
maven导入spring框架
数据库·spring·maven
wanhengidc28 分钟前
服务器硬盘都有哪些功能
大数据·运维·服务器·数据库·科技
掘金安东尼35 分钟前
⏰前端周刊第 456 期(v2026.3.15)
前端·javascript·面试
还是大剑师兰特35 分钟前
Vue3 通用可复用动态插槽组件(终极版)
前端·javascript·vue.js