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

示例图如下

相关推荐
呆呆敲代码的小Y8 分钟前
2025年多家海外代理IP实战案例横向测评,挑选适合自己的
前端·产品
IT利刃出鞘11 分钟前
WordPress插件--Redis Object Cache对象缓存插件的用法
数据库·redis·缓存
q***37512 分钟前
爬虫学习 01 Web Scraper的使用
前端·爬虫·学习
v***56521 分钟前
Spring Cloud Gateway
android·前端·后端
面向星辰24 分钟前
sql通配符(大量查找搜索索引)
数据库·sql
b***594326 分钟前
分布式WEB应用中会话管理的变迁之路
前端·分布式
斐硕人26 分钟前
SQL滚动求和
数据库·sql·mysql·maxcompute
q***216029 分钟前
Spring Boot项目接收前端参数的11种方式
前端·spring boot·后端
顾安r1 小时前
11.21 脚本 网页优化
linux·前端·javascript·算法·html
爬山算法1 小时前
Redis(135)Redis的网络模型是什么?
网络·数据库·redis