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

示例图如下

相关推荐
懒羊羊我小弟17 分钟前
Vue与React组件化设计对比
前端·vue.js·react.js
八股文领域大手子20 分钟前
深入浅出 Redis:核心数据结构解析与应用场景Redis 数据结构
java·数据结构·数据库·人工智能·spring boot·redis·后端
_朱志强22 分钟前
解决前端vue项目在linux上,npm install,node-sass 安装失败的问题
linux·前端·vue.js
atbigapp.com25 分钟前
DeepSeek在数据仓库的10大应用场景
大数据·数据库·人工智能
结衣结衣.42 分钟前
【MySQL】库的操作
linux·数据库·mysql
成工小白43 分钟前
Redis的下载安装和使用(超详细)
数据库·redis·缓存
excel1 小时前
webpack 检出图 第 二 节
前端
excel1 小时前
webpack 检出图 第 一 节
前端
专注前端不学习一天浑身难受1 小时前
基于uniapp 实现画板签字
前端·uniapp
低代码布道师1 小时前
加油站小程序实战教程11会员注册
前端·javascript·低代码·小程序