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

示例图如下

相关推荐
朝阳392 分钟前
react【实战】首页 -- 响应式导航栏(含带联动动画的搜索框)
前端·react.js·前端框架
摇滚侠9 分钟前
sqlplus “/ as sysdba“ 什么意思
java·数据库·oracle
贾铭16 分钟前
如何实现一个网页版的剪映(五)如何跳转到视频某一帧
前端·后端
duangww16 分钟前
OPEN SQL去掉文本中间的空格
数据库·abap
zxrhhm17 分钟前
MySQL 索引回表(Back to Table)详解
数据库·mysql
m0_7414817819 分钟前
Vue.js核心基础之响应式系统与虚拟DOM渲染关联机制
jvm·数据库·python
林恒smileZAZ20 分钟前
CSS 滚动驱动动画(scroll-timeline):无 JS 实现滚动特效
前端·javascript·css
俺不会敲代码啊啊啊20 分钟前
el-table实现行拖拽(包含展开项)
前端·vue.js·typescript
LIO21 分钟前
React Router 极简指南(v6+)
前端·react.js
明月_清风22 分钟前
从 AST 视角看透前端工程化:一条编译管线如何串联起所有工具
前端