微信小程序实现上下置顶中间滚动的效果

我们在写页面时,可能经常会碰到这样的页面结构,头部和尾部固定,中间自由滚动的效果,或者固定头部,剩余的部分根据内容来自由滚动。
刚刚毕业做项目,总是因为这个耽误不少时间,希望跟我一样的小伙伴,看完我写的这之后,能够让你更快的码代码哦。
那就来先说说小程序吧!

小程序实现

在这里插入图片描述


<view style="`display: flex;flex-direction: column;justify-content:space-between;height:100%`">
  <view style="border:1px solid red;">
    <span>head</span>
  </view>
  <view style="border:1px solid black;display:flex;flex:1" class="middle">
    <scroll-view style="height:200px" scroll-y="true">
      <view style="width:100px;height:100px;border:1px solid red;">内容一</view>
      <view style="width:100px;height:100px;border:1px solid red;">内容二</view>
    </scroll-view>
  </view>
  <view style="border:1px solid green;">
    <span>foot</span>
  </view>
</view>

1.把包裹所有元素的最外层那个view甚至为弹性布局

display: flex;
flex-direction: column;
justify-content:space-between;
height:100%;

最重要的要把高度设置为100%

2.把需要滚动的区域同样设置成弹性布局

display:flex;
flex:1;

3.中间部分实现滚动
那肯定需要借助scroll-view ,把scroll-view 的滚动的高度设置,和滚动的方向设置好,就可以实现我们想要的效果拉

那如果想动态获取中间这部分的高度时,就可以在js中的onshow函数上

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    let query = wx.createSelectorQuery();
    query.select('.middle').boundingClientRect(rect=>{
      let height = rect.height;
      console.log(height);
      this.setData({
        height:height
      })
    }).exec();
  },

然后把高度设置到scrollview和高度上就可以
你敲到这,会问怎么没有效果,那最重要的是把

page页面的高度也要设置为100%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值