工作中遇到需要实现一个微信小程序类似游戏进度条的效果,以下是个案例,分享给大家。
一、成品效果展示:

二、HTML代码:wxml
<view class="fixeed_loading" wx:if="{{hideloading}}">
 <view class="loadingbox">
  <view class="loading">
   <view class="loading_h" style="width: {{progress}}%;"></view>
   <view class="numq" style="position: absolute; left: {{progress-10}}%;">
    <view class="numqnei">{{progress}}</view>
   </view>
  </view>
  <view class="logonanme">进度条展示</view>
 </view>
</view>三、CSS代码:wxss
.fixeed_loading{width: 100%; height: 100vh;background-color: #2454a6;position: fixed; left: 0rpx; top: 0rpx; z-index: 999; display: flex; align-items: center; }
.logonanme{ width: 100%; font-size: 40rpx;}
.fixeed_loading view{ color: #fff;}
.loadingbox{ width: 500rpx; margin: 0 auto; text-align: center;}
.loading{ width: 100%; height: 22rpx; background-color: #d9dadc; border-radius: 45rpx; margin-bottom: 30rpx; position: relative;}
.loading_h{ width: 0%; height: 22rpx; background-color: #ffbd4e; border-radius: 45rpx; position: relative; overflow: hidden; }
.numq{ width: 80rpx; height: 80rpx; background: linear-gradient(45deg, #dc8438, #fac168); border-radius: 50%; font-size: 25rpx; position: absolute; top: -110rpx;}
.numqnei{ width: 60rpx; height: 60rpx; display: inline-block; border: 1px solid #fff; margin: 0 auto; margin-top: 10rpx; border-radius: 50%;line-height: 60rpx;}
.numqnei::after {content: "";display: block; position: absolute;top: 110%;left: 50%; margin-left: -10rpx; width: 0; height: 0;border-top: 15rpx solid #ea923a;border-left: 10rpx solid transparent; border-right: 15rpx solid transparent;
}
.loading_h::before { content: '';position: absolute; left: 0rpx;top: 0rpx;background:repeating-linear-gradient(45deg,#feb354 0,#feb354 16rpx,#ff8405 16rpx,#ff8405 32rpx);width: 100%; height: 100px; animation: move 2s linear infinite;}
@keyframes move{
 0%{
  transform: translate(0,0);
 }
 100%{
  transform: translate(0,-136rpx);
 }
}四、JS逻辑代码:
Page({
 /**
  * 页面的初始数据
  */
 data: {
  progress:0,
  hideloading:true,
 },
 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {
  this.startLoading();
 },
  startLoading: function() {
   var that = this;
   var progress = 0;
   // 使用定时器模拟加载进度
   var timer = setInterval(function() {
    if (progress >= 100) {
     clearInterval(timer);
     that.setData({
      hideloading: false
     })
    } else {
     progress++;
     // 更新提示框标题为当前加载进度
     that.setData({
      progress: progress
     })
     // wx.showToast({
     //  title: '加载中 ' + progress + '%',
     //  icon: 'loading',
     //  duration: 10000,
     //  mask: true
     // });
    }
   }, 20);
  }
})
                     
                     
                     
                                 
                                 
                         
                         
                         
                         
                         
                         
                         
                         
                
                 
                         
                         
                         
                         
                 关于简忆
关于简忆 简忆诞生的故事
简忆诞生的故事 
            


 粤ICP备16092285号
粤ICP备16092285号
文章评论(0)