微信小程序 自定义弹窗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序 自定义弹窗相关的知识,希望对你有一定的参考价值。

参考技术A  <button bindtap="powerDrawer" type="primary" size="mini" style="width: 55%;" data-statu="open">中奖记录</button>  

<!-- 中间名单弹窗 -->

<view class="drawer_div">

  <view class="drawer_screen" bindtap="powerDrawer" data-statu="close" wx:if="showModalStatus"></view>

    <view animation="animationPrize" class="drawer_box" wx:if="showModalStatus">

      <view class="drawer_title">

        中奖记录

        <image src="../img/x@2x.png" bindtap="powerDrawer" data-statu="close"></image>

      </view>

      <view class="drawer_content">

        <view class="top grid">

          <text>

            名称:啦啦啦啦啦啦啦啦

          </text>

          <text>

            时间:2020-02-20

          </text>

        </view>

        <view class="top grid">

          <text>

            名称:啦啦啦啦啦啦啦啦

          </text>

          <text>

            时间:2020-02-20

          </text>

        </view>

    </view>

  </view>

</view>

.drawer_screen 

  width: 100%;

  height: 100%;

  position: fixed;

  top: 0;

  left: 0;

  z-index: 1000;

  background: #000;

  opacity: 0.5;

  overflow: hidden;



/*content*/

.drawer_box 

  width: 650rpx;

  overflow: hidden;

  position: fixed;

  top: 50%;

  left: 0;

  z-index: 1001;

  background: #FAFAFA;

  margin: -150px 50rpx 0 50rpx;

  border-radius: 3px;



.drawer_title

  padding:30rpx 20rpx;

  font-size: 36rpx;

  text-align: center;

  position: relative;



.drawer_title image

  display: inline-block;

  width: 30rpx;

  height: 30rpx;

  position: absolute;

  right: 9px;

  top: 10px;



.drawer_content 

  height: 210px;

  overflow-y: scroll; /*超出父盒子高度可滚动*/

  padding: 0 20rpx;



.top

  display: flex;

  justify-content: space-between;

  border-bottom: 1px dashed #ccc;



.top text

  display: inline-block;

  height: 60rpx;

  line-height: 20rpx;



data: 

animationPrize: ,



powerDrawer: function (e) 

    // console.log(e);

    let currentStatu = e.currentTarget.dataset.statu;

    this.util(currentStatu);

  ,

  util: function (currentStatu) 

    /* 动画部分 */

    // 第1步:创建动画实例

    var animation = wx.createAnimation(

      duration: 200,  //动画时长

      timingFunction: "linear", //线性

      delay: 0  //0则不延迟

    );

    // 第2步:这个动画实例赋给当前的动画实例

    this.animation = animation;

    // 第3步:执行第一组动画

    animation.opacity(0).rotateX(-100).step();

    // 第4步:导出动画对象赋给数据对象储存

    this.setData(

      animationPrize: animation.export()

    )

    // 第5步:设置定时器到指定时候后,执行第二组动画

    setTimeout(function () 

      // 执行第二组动画

      animation.opacity(1).rotateX(0).step();

      // 给数据对象储存的第一组动画,更替为执行完第二组动画的动画对象

      this.setData(

        animationPrize: animation

      )

      //关闭

      if (currentStatu == "close") 

        this.setData(

          showModalStatus: false

        );

      

    .bind(this), 200)

    // 显示

    if (currentStatu == "open") 

      this.setData(

        showModalStatus: true

      );

    

  ,

以上是关于微信小程序 自定义弹窗的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序自定义弹窗wcPop插件|仿微信弹窗样式

微信小程序怎么实现弹窗?

微信小程序之自定义toast弹窗

微信小程序封装自定义弹窗

微信小程序怎么悬浮窗口

微信小程序自定义弹窗