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

示例图如下

相关推荐
有想法的py工程师几秒前
PostgreSQL 在AWS的 T 系列实例上的性能陷阱
数据库·postgresql·aws
m0_746752301 分钟前
bootstrap怎么给表格添加固定表头效果
jvm·数据库·python
justjinji1 分钟前
JavaScript 数组引用陷阱与“破纪录”问题的正确解法
jvm·数据库·python
Java后端的Ai之路2 分钟前
React 快速入门到精通教程:从零基础到能写项目
前端·react.js·前端框架
m0_674294642 分钟前
mysql如何通过yum源快速安装_mysql官方yum安装教程
jvm·数据库·python
justjinji3 分钟前
如何在Node.js中封装通用的MongoDB CRUD操作层_基于原生驱动的DAO层设计模式
jvm·数据库·python
是上好佳佳佳呀4 分钟前
【前端(九)】CSS Transform 2D/3D 变换笔记:分清两个原点,搞懂多重变换
前端·css·笔记
梦想的旅途26 分钟前
企微自动化办公:实现外部群聊的高级交互逻辑
运维·数据库·自动化·企业微信·rpa
abc123456sdggfd7 分钟前
php怎么实现API网关聚合_php如何将多个微服务接口合并响应
jvm·数据库·python
LiAo_1996_Y11 分钟前
JavaScript中类属性与原型属性的覆盖规则详解
jvm·数据库·python