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

示例图如下

相关推荐
粉嘟小飞妹儿19 小时前
怎么关闭MongoDB不需要的HTTP管理接口及REST API
jvm·数据库·python
qq_2069013919 小时前
c++如何将浮点数按指定精度写入文本_setprecision用法【实战】
jvm·数据库·python
SuperEugene19 小时前
Vue3 配置驱动弹窗:JSON配置弹窗内容/按钮,避免重复开发弹窗|配置驱动开发实战篇
前端·javascript·vue.js·前端框架·json
知识分享小能手19 小时前
MongoDB入门学习教程,从入门到精通,部署MongoDB(24)
数据库·学习·mongodb
WayneYang19 小时前
前端 JavaScript 核心知识点 + 高频踩坑 + 大厂面试题全汇总(开发 / 面试必备)
前端·javascript
2401_8654396319 小时前
如何管理Oracle服务器的内核共享内存_shmmax与shmall计算
jvm·数据库·python
小贵子的博客19 小时前
基于Vue3 和 Ant Design Vue实现Modal弹窗拖拽组件
前端·javascript·vue.js
小李子呢021119 小时前
前端八股CSS---CSS选择器和优先级
前端·css
专注VB编程开发20年19 小时前
2000条25列数据导出到Sqlite只用40毫秒,ACCESS用时800-1300毫秒
数据库·sqlite·access
阿凤2119 小时前
uniapp如何修改下载文件位置
开发语言·前端·javascript