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

示例图如下

相关推荐
是上好佳佳佳呀7 小时前
【前端(十一)】JavaScript 语法基础笔记(多语言对比)
前端·javascript·笔记
FQNmxDG4S7 小时前
Maven依赖管理:版本冲突解决与生命周期控制
java·数据库·maven
莎士比亚的文学花园7 小时前
Linux驱动开发(3)——设备树
开发语言·javascript·ecmascript
热爱运维的小七7 小时前
告别内存溢出:ActiveMQ 性能诊断与全流程优化
数据库·it运维·activemq·devops
@小柯555m7 小时前
MySql(高级操作符--操作符混合运用)
数据库·sql·mysql
CDN3607 小时前
排查实录:网站偶发502/504错误?360CDN回源超时配置与日志分析技巧
前端·数据库
bzmK1DTbd7 小时前
JDBC编程规范:PreparedStatement与事务管理
数据库·python·eclipse
卧室小白7 小时前
Redis-哨兵模式
数据库·redis·缓存
之歆8 小时前
Day07_CSS盒子模型 · 样式继承 · 用户代理样式
前端·css
01漫游者8 小时前
JavaScript函数与对象增强知识
开发语言·javascript·ecmascript