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);
  };

示例图如下

相关推荐
sayamber几秒前
Kubernetes 生产环境避坑指南:10 个真实故障案例与解决方案
前端
2501_901200538 分钟前
mysql数据库主键类型对性能的影响_使用自增整数优于UUID
jvm·数据库·python
清寒_13 分钟前
分层理解AI架构,降低对AI复杂度的恐惧
前端·人工智能·ai编程
HalvmånEver16 分钟前
MySQL的内置函数
linux·数据库·学习·mysql
m0_7364393017 分钟前
Workerman5.0协程实战:PHP高并发新标准
jvm·数据库·python
2301_8180084420 分钟前
golang如何实现消息过滤路由_golang消息过滤路由实现要点
jvm·数据库·python
鸡蛋灌Bean20 分钟前
mybatis分页深入了解
java·数据库·mybatis
2401_8314194432 分钟前
Python分类汇总怎么做_Crosstab交叉表与多条件联合频数频率统计
jvm·数据库·python
2301_7873124333 分钟前
Go语言怎么用channel做信号通知_Go语言channel信号模式教程【完整】
jvm·数据库·python
牧码岛38 分钟前
Web前端之JavaScrip中的Array、Object、Map和Set详解
前端·javascript·web·web前端