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

示例图如下

相关推荐
qq_413502024 分钟前
CSS解决浮动布局中最后一行对齐_配合伪类或容器处理
jvm·数据库·python
2301_808414384 分钟前
MySQL的基础认识
数据库·mysql
djjdjdjdjjdj5 分钟前
Less如何优化CSS代码注释风格_利用Less特性保持规范.txt
jvm·数据库·python
@大迁世界5 分钟前
33.如何在 React 中使用内联样式(inline styles)?
前端·javascript·react.js·前端框架·ecmascript
m0_602857766 分钟前
mysql如何编写递归存储过程_mysql max_sp_recursion_depth设置
jvm·数据库·python
2401_846339566 分钟前
CSS开发规范如何制定_以BEM命名法为基础构建规范体系
jvm·数据库·python
CodeSheep8 分钟前
DeepSeek的最新招人标准,太讽刺了。
前端·后端·程序员
张3239 分钟前
k8s etcd备份恢复
数据库·k8s·etcd
PSLoverS10 分钟前
CSS如何实现自适应宽度的标签页_利用CSS变量计算Tab宽度
jvm·数据库·python
不法12 分钟前
vue 地图路线渲染
前端·vue.js·ubuntu