小程序中实现分页加载的加载动画效果 | 熊阿哥博客

小程序中实现分页加载的加载动画效果

微信   2025-01-09 19:50   149   0  

在微信小程序中实现分页加载的加载动画效果,可以通过以下步骤进行:


1. **添加加载动画组件**

在需要显示加载动画的页面中,添加一个加载动画组件。可以使用微信小程序自带的`<loading>`组件,或者自定义一个加载动画。


 使用微信自带的`<loading>`组件

html

<view class="container">
  <view wx:for="{{items}}" wx:key="id" class="item">
    <!-- 展示数据 -->
  </view>
  
  <loading hidden="{{!loading}}" title="加载中..."></loading>
  
  <view class="no-more-data" wx:if="{{noMoreData}}">
    没有更多数据了
  </view>
</view>


自定义加载动画

你也可以自定义一个加载动画,例如使用`<view>`和`<text>`组件来创建一个简单的旋转动画。


2. **控制加载动画的显示与隐藏**

在页面的`data`中定义一个`loading`变量,用于控制加载动画的显示与隐藏。javascript

Page({
  data: {
    items: [],
    currentPage: 1,
    pageSize: 10,
    total: 0,
    loading: false,
    noMoreData: false
  },
  
  onLoad() {
    this.loadData();
  },
  
  loadData() {
    if (this.data.loading || this.data.noMoreData) return;
    
    this.setData({ loading: true });
    
    wx.request({
      url: 'your-api-endpoint',
      data: {
        page: this.data.currentPage,
        pageSize: this.data.pageSize
      },
      success: (res) => {
        const { data, total } = res.data;
        
        if (data.length > 0) {
          this.setData({
            items: [...this.data.items, ...data],
            total: total,
            currentPage: this.data.currentPage + 1
          });
        } else {
          this.setData({ noMoreData: true });
        }
      },
      complete: () => {
        this.setData({ loading: false });
      }
    });
  },
  
  onReachBottom() {
    this.loadData();
  }
});


3. **样式调整**

根据需要调整加载动画的样式,使其与页面风格一致。

使用微信自带的`<loading>`组件

微信自带的`<loading>`组件样式可以通过`title`属性进行调整。


自定义加载动画

css

/* 自定义加载动画样式 */
.loading-spinner {
  width: 50px;
  height: 50px;
  border: 5px solid #ccc;
  border-top-color: #1aad19;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}


html

<!-- 自定义加载动画 -->

<view class="loading-spinner" wx:if="{{loading}}"></view>


总结

通过以上步骤,你可以在微信小程序中实现分页加载的加载动画效果。关键在于控制加载动画的显示与隐藏,并根据需要调整样式。使用微信自带的`<loading>`组件可以快速实现加载动画,而自定义加载动画则可以提供更多的设计自由度。


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。