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

示例图如下

相关推荐
TechWayfarer几秒前
网络安全视角:利用IP定位API接口识别机房与基站流量(合规风控篇)
开发语言·网络·数据库·python·安全·网络安全
丑八怪大丑几秒前
HTML&CSS
前端·css·html
dinglu1030DL1 分钟前
Less如何构建CSS样式库_通过继承机制优化组件化开发
jvm·数据库·python
团象科技4 分钟前
全渠道出海布局之下,多币种云结算承担着怎样的作用
前端·人工智能
chushiyunen4 分钟前
postgresql安装timescaledb替代influxdb功能、查看已安装的插件
数据库·postgresql
duke8692672148 分钟前
C#怎么获取U盘的插拔事件_C#如何重写WndProc捕获消息【进阶】
jvm·数据库·python
数据库小学妹11 分钟前
CDC实时数据同步:让数据库变更秒级流向大数据平台!
大数据·数据库·mysql·kafka·dba
rising start13 分钟前
InsightEdu - 轻量智能学习平台
javascript·axios·css3·html5·fastapi·orm·dify
m0_6908258213 分钟前
如何高效实现多用户通知系统而不造成数据库冗余
jvm·数据库·python
XZ-07000116 分钟前
MySQL-视图
数据库·mysql