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

示例图如下

相关推荐
tangbin58308515 分钟前
iOS Swift:蓝牙 BLE 连接外设CoreBluetooth
前端
WWWWW先生17 分钟前
02 登录功能实现
前端·javascript
嚴寒18 分钟前
我用 AI 画了个设计稿,然后让它自己写成了代码
前端·ai编程
彭锐34327 分钟前
哨兵节点实现的自驱式任务队列
前端
阿星AI工作室31 分钟前
我做了个飞书转公众号排版器,6套高颜值主题想换就换
前端·人工智能
愈努力俞幸运1 小时前
第5章数据库,实体关系图,ER图
数据库·oracle
Lee川1 小时前
深入解析:从内存模型到作用域陷阱——JavaScript变量的前世今生
javascript·算法
_Eleven1 小时前
继TailWindCss和UnoCss后的CSS-in-JS vs Utility-First 深度对比
前端
GinoWi1 小时前
CSS属性 - 边距属性
前端
豆苗学前端1 小时前
彻底讲透医院移动端手持设备PDA离线同步架构:从"记账本"到"分布式共识",吊打面试官
前端·javascript·后端