微信小程序 scroll-view 实现自动滑动到底部

微信小程序 scroll-view 实现自动滑动到底部

写在前面

要实现实时聊天功能的话,那么每次有新的消息进来之后,要自动的滚动到底部。

涉及技术点

scroll-view 有一个属性 scroll-into-view

把新进来的消息,push 添加到消息列表 messageList 中。
但页面不会自动往下滚动。

实现代码

1、在 scrill-view 节点最下面加一个垫片节点。

<scroll-view
  class="scroll-wrapper"
  scroll-into-view="{{scrollTo}}"
  scroll-y="true"
  bindscroll="messageListScrolling"
>
  <block wx:for="{{messageList}}" wx:key="id">
    <view>{{item}}</view>
  </block>
  <!-- 最后加一个垫底的节点 -->
  <view class="last-view" id="{{endId}}" style="height:{{bottomHeight}}px;"></view>
</scroll-view>
autoScroll() {
  let view_id = 'view_id_' + parseInt(Math.random() * 1000000)
  this.setData({
    scrollTo: ''
  })
  this.setData({
    endId: view_id
  })
  this.setData({
    scrollTo: view_id
  })
}

需要说明的是:这里的 3 个 this.setData 不能合并成一个

需要滚动到最底部时,调用 autoScroll 方法即可滚动到最底部。

——————————【正文完】——————————

前端学习交流群,想进来面基的,可以加群: 685486827832485817
Vue学习交流 React学习交流

写在最后: 约定优于配置 —— 软件开发的简约原则

——————————【完】——————————

我的:
个人网站: https://neveryu.github.io/neveryu/
Github: https://github.com/Neveryu
新浪微博: https://weibo.com/Neveryu
微信: miracle421354532

更多学习资源请关注我的新浪微博…好吗

微信小程序scroll-view组件可以实现触底加载效果,具体实现方法如下: 首先,在wxml文件中将scroll-view组件的bindscrolltolower属性绑定到一个函数上,例如: <scroll-view bindscrolltolower="loadMoreData"> <!-- 这里是scroll-view的具体内容 --> </scroll-view> 然后,在对应的js文件中,定义loadMoreData函数来处理触底加载的逻辑: Page({ data: { // 这里是页面需要显示的数据 }, loadMoreData: function(e) { // 判断是否已经加载了全部数据,如果是则不进行加载 if (this.data.isLoadedAll) { return; } // 进行加载操作,可以发送请求获取更多的数据 wx.request({ url: 'https://example.com/loadmore', data: { // 这里是传递给后端的参数 }, success: res => { // 将获取到的新数据追加到原有数据的后面 const newData = this.data.dataList.concat(res.data.data); this.setData({ dataList: newData }); // 判断是否已经加载了全部数据,如果是则更新isLoadedAll状态为true if (res.data.isLoadedAll) { this.setData({ isLoadedAll: true }); } } }); } }); 通过上述代码,我们定义了loadMoreData函数来处理触底加载的逻辑。在函数中,首先判断是否已经加载了全部数据,如果是则返回,不进行加载操作。然后,通过wx.request发送请求获取更多的数据,将新数据追加到原有数据的后面,并更新isLoadedAll状态来判断是否已经加载了全部数据。 这样,当用户滑动scroll-view组件的底部时,就会触发loadMoreData函数进行加载操作,实现了触底加载的效果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值