Taro小程序使用ScrollView组件,黏性布局间歇性失效的问题

背景:使用ScrollView作为容器做了一个表格需求:

  1. 固定了首列

  2. 表格可滑动

  3. 点击某一行,会在被点击的行下面展开一个详情

  4. 顶部有个tab,通过切换tab展示不同的表格

主要实现方式:

  1. 首列采用黏性布局

  2. 详情展开页也使用黏性布局

问题:

  横向滑动表格,滑动到某个地方开始,下面的详情展开页失去黏性,跟着滑动

分析:

1. 黏性布局是在它的父容器的宽度内生效的,通过查看,

   1)父容器给的宽度给的宽度是1300px(在CSS文件中写的1300px,编译后会变成1300rpx,再转换成px)

  2)我的表格各个字段的宽度是(180rpx+150*6rpx+100px(写的行内样式,不会转换为rpx)+100px(同上)),100px换成rpx,即750/屏幕宽度*100,如果是390宽度的屏幕,大概是192rpx

  综上两点,父容器宽度小于子元素的宽度,黏性布局在超出父容器宽度时失效了。

2. 在解决第一点后发现,黏性布局未失效,但是有新问题,那就是,展开的容器有点大,加上内边距,这个容器的大小都大于屏幕宽度,这个展开页还是会动。

3. 基于第二点可得,需要将缩小展开页的宽度,我刚开始给的是 屏幕宽度(px)- 所有边距(px)

4. 然后会发现,在不同的屏幕宽度的手机下,还是会出现第二点的问题。通过查看布局发现,这个展开容器左边距总共是70rpx,右边距总共是70rpx(其实在css里写的是70px,小程序会转换,切记),在不同屏幕下,转换出来的px是不一样的,所以导致了误差。

因为我写的是行内式,Taro不会转换我的单位,所以我要算出px,最后公式是

屏幕宽度-(屏幕宽度/750*140)px

由于是140的单位是rpx,我们最后得出的单位是px

由rpx->px,由大变小,因此750做分母

总结:会犯这个错误的的原因是,没搞清楚Taro对单位的编译

1. 写行内式,写的是px,最后就是px

2. 在css文件中,写的是px,编译后会变成rpx,最后再通过计算,变成px

3. px与rpx的转换关系

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值