微信小程序开屏动画组件封装以及使用示例-河图数字

思路

  • 首先调用wx.hideTabbar() 隐藏微信小程序的tabbar
  • 封装一个开屏动画组件,在几秒后自动关闭
  • 在关闭的时候调用 wx.showTabber();来使tabbar显示出来

 

效果展示

微信小程序开屏动画组件封装以及使用示例-河图数字

git仓库地址

git仓库地址:https://github.com/MrITzhongzi/small_routine_components.git

 

示例目录结构

微信小程序开屏动画组件封装以及使用示例-河图数字

 

核心代码

kaiping_component.wxml


<删view class="kaiping_box">
  <删image src="{{imagepath}}" mode="aspectFill">
  <删view class="kaiping-header">
    <删view class="kaiping-btn" bindtap="skipAnimation">跳过 {{second}}s<删/view>
  <删/view>
<删/view>

 

kaiping_component.js

// component/kaiping_component.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    imagepath: {
      type: String
    },
    second: {
      type: Number
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    timer: null
  },

  lifetimes: {
    created: function () {
     
    },
    attached: function () {
      let secondTime = this.data.second;
      let that = this;

      const timer = setInterval(function () {
        let nowSecond = --that.data.second;
        if (nowSecond <= 0) {
          clearInterval(timer);
          that.hideKaiping();
        }
        console.log(nowSecond);
        that.setData({
          second: nowSecond
        });
      }, 1000);
      this.setData({
        timer: timer
      });
    }
  },

  /**
   * 组件的方法列表
   */
  methods: {
    hideKaiping: function () {
      this.triggerEvent("hide");
      
    },
    skipAnimation: function () {
      this.hideKaiping();
      let timer = this.data.timer;
      if (timer) {
        clearInterval(timer);
      }
    }
  }
})

 

kaiping_component.wxss

/* component/kaiping_component.wxss */

.kaiping_box {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 2;
}

.kaiping_box image {
  width: 100%;
  height: 100%;
}

.kaiping-header {
  position: absolute;
  top: 100rpx;
  left: 5px;
  width: 96%;
  display: flex;
}
.kaiping-second, .kaiping-btn {
  font-size: 12px;
  color: white;
  border: 1px solid white;
  padding: 1px 6px;
  border-radius: 10px;
}

kaiping_component.json
{
  "component": true,
  "usingComponents": {}
}

 

使用示例

index.wxml

<删view class="intro">欢迎使用代码片段,可在控制台查看代码片段的说明和文档<删/view>

<删kaiping-component wx:if="{{kaipingFlag}}" imagepath="/image/image.png" second="{{10}}" bind:hide="onMyEvent" ><删/kaiping-component>

 

index.json

{
  "usingComponents": {
    "kaiping-component": "/component/kaiping_component"
  },
  "navigationStyle": "custom"
}

 

index.js

const app = getApp()

Page({
  data: {
    kaipingFlag: true
  },
  onLoad: function () {
    wx.hideTabBar();
  },
  onMyEvent: function () {
    console.log("close");
    this.setData({
      kaipingFlag: false
    });
    wx.showTabBar();
  }
})

 

版权声明:本文为CSDN博主「ITzhongzi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ITzhongzi/article/details/106123166