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

示例图如下

相关推荐
来恩10033 分钟前
jQuery选择器
前端·javascript·jquery
前端繁华如梦5 分钟前
树上挂苹果还是挂玻璃球?Three.js 程序化果实的完整实现指南
前端·javascript
墨痕诉清风12 分钟前
Web浏览器客户端检测网站网络健康(代码)
前端·网络·测试工具
IMPYLH14 分钟前
Linux 的 wc 命令
linux·运维·服务器·前端·bash
小短腿的代码世界15 分钟前
Qt国际化深度解析:从源码到企业级多语言实践
java·数据库·qt
Ting-yu20 分钟前
Spring AI Alibaba零基础速成(6) ---- 向量化
数据库·人工智能
happybasic31 分钟前
Python库升级标准流程~
linux·前端·python
川冰ICE36 分钟前
前端工程化深度实战:从Webpack5到Vite5的构建工具演进与选型决策
前端
dishugj36 分钟前
HANA性能分析视图
数据库
CDwenhuohuo37 分钟前
优惠券组件直接用 uview plus
前端·javascript·vue.js