微信小程序列表滑动影响解析

场景说明

我们经常会遇到左边是一个分类,右边是内容列表,这时,一个页面中有左右两个列表。经过实践测试会出现,一下几个问题:

  1. 两个滑动列表互相影响,即滑动一个时另一个也会跟着动
  2. 微信小程序页面的生命周期函数 onreachBottom没法触发
我们用下面这个案例解析

在这里插入图片描述

  • onreachBottom没法触发问题

onReachBottom只有在页面被充满时,并且滑动到页面底部时才会触发。

大部分未触发的原因时某个盒子内容可以滚动,但是这个盒子有固定的尺寸,页面并没有被充满。所以没有触发 onreachBottom

  • 两个滑动列表互相影响

就上面这个图片为例,当我们滑动左边的列表,当左边的列表滑动到底部的时候,我们继续往下滑动左边的列表,就会发现,右边的列表在往下滑动,左边的列表因为已经到底部了,所以不动。

当我们往上滑动左边的列表,直到列表顶部,我们继续滑动时,就会发现,左边的列表不懂,右边的列表,会往上滑动。

这就是微信 小程序两个列表的滑动影响问题。

产生原因: 当左边列表滑动到底部,继续滑动左边列表时,小程序会检测屏幕上可以往下滑动的列表并往下滑动。 当往上滑动左边的列表时,同上。

总结

这算是微信小程序的一个小bug吧,当页面不充满,onreachbottom无法触发我们就没有办法做移动端的分页。

而两个列表的滑动影响可能让客户误以为我们程序不严谨。

以上demo代码
  • wxml
<view class="page-box">
  <view class="header-banner">
    <image src="../1.jpeg" mode="aspectFill"></image>
  </view>

  <view class="classify-box">
    <view class="left-nav">
      <view class="left-nav-item" wx:for="{{20}}">{{item}}</view>
    </view>
    
      <view class="right-con">
        <view class="right-con-item" wx:for="{{40}}">这是内容{{item}}</view>
      </view>
    
  </view>
</view>
  • wxss
.page-box {
  height:100%;
  /* overflow: hidden; */
}

.header-banner {
  height: 200px;
}

.header-banner image {
  width: 100%;
  height: 200px;
}

.classify-box {
  height: calc(100vh - 220px);
  margin-top: 20px;
  display: flex;
 
}

.left-nav {
  height: 100%;
  width: 100px;
  overflow: scroll;
}

.left-nav-item {
  border-bottom: 1px solid #ccc;
  text-align: center;
  padding: 10px 0;
}

.right-con {
  height: 100%;
  overflow: scroll;
  flex-basis: calc(100vw - 110px);
  margin-left: 10px;
}

.right-con-item {
  text-align: center;
  padding: 30px 0;
  border: 1px solid #666;
}

  • json
{
  "usingComponents": {},
  "onReachBottomDistance": 20
}
  • js
const app = getApp()

Page({
  data: {

  },
  onLoad: function () {
    console.log('代码片段是一种迷你、可分享的小程序或小游戏项目,可用于分享小程序和小游戏的开发经验、展示组件和 API 的使用、复现开发问题和 Bug 等。可点击以下链接查看代码片段的详细文档:')
    console.log('https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/devtools.html')
  },
  onReachBottom: function(){
    console.log("reach bottom");
  }
})

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ITzhongzi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值