微信小程序实现翻牌抽奖动画

本文实例为大家分享了微信小程序实现翻牌抽奖的具体代码,供大家参考,具体内容如下

效果图如下所示

这里做的比较简陋,就花了一点时间实现了翻牌抽奖效果,提供思路

.wxml

<view class="button" bindtap="again">重新翻牌</view>

<view class="curin-index">

<view bindtap="{{whether?'':'tamin'}}" wx:for="{{9}}" wx:key="index" data-index="{{index+1}}" class="currin {{really == index+1?'animt':''}} {{really != index+1 && surplus?'animt':''}} {{really == ''?'cinton'+(index+1):''}}" style="{{really == index+1 && implement > 1?'background-image: linear-gradient(45deg, #f43f3b, #ec008c);':''}}{{really != index+1 && surplus && implement > 2?'background-image: linear-gradient(45deg, #39b54a, #8dc63f);':''}}">

{{really == index+1?flop:''}}{{really != index+1 && really != ''?biutin:''}}{{really == ''?'点击翻牌':''}}

</view>

</view>

.wxss

view{

box-sizing: border-box;

}

.button{

width: 40%;

height: 80rpx;

line-height: 80rpx;

background-color: #fadbd9;

color: #e54d42;

text-align: center;

border-radius: 10rpx;

margin: 30rpx 30%;

float: left;

position: relative;

}

.curin-index{

width: 100%;

float: left;

}

.currin{

margin-left: 4%;

margin-top: 50rpx;

width: 28%;

float: left;

background-image: linear-gradient(45deg, #0081ff, #1cbbb4);

color: #fff;

text-align: center;

height: 200rpx;

line-height: 200rpx;

border-radius: 10rpx;

position: relative;

}

.currin::before {

content: "";

display: block;

background: inherit;

filter: blur(10rpx);

position: absolute;

width: 100%;

height: 100%;

top: 10rpx;

left: 10rpx;

z-index: -1;

opacity: 0.4;

transform-origin: 0 0;

border-radius: inherit;

transform: scale(1, 1);

}

.cinton1{

animation: cinton1 alternate linear 2 1s;

}

@keyframes cinton1{

from {

top: 0;

left: 0;

}

to {

top: 230rpx;

left: 230rpx;

}

}

.cinton2{

animation: cinton2 alternate linear 2 1s;

}

@keyframes cinton2{

from {

top: 0;

left: 0;

}

to {

top: 230rpx;

left: 0rpx;

}

}

.cinton3{

animation: cinton3 alternate linear 2 1s;

}

@keyframes cinton3{

from {

top: 0;

left: 0;

}

to {

top: 230rpx;

left: -230rpx;

}

}

.cinton4{

animation: cinton4 alternate linear 2 1s;

}

@keyframes cinton4{

from {

top: 0;

left: 0;

}

to {

top: 0rpx;

left: 230rpx;

}

}

.cinton6{

animation: cinton6 alternate linear 2 1s;

}

@keyframes cinton6{

from {

top: 0;

left: 0;

}

to {

top: 0rpx;

left: -230rpx;

}

}

.cinton7{

animation: cinton7 alternate linear 2 1s;

}

@keyframes cinton7{

from {

top: 0;

left: 0;

}

to {

top: -230rpx;

left: 230rpx;

}

}

.cinton8{

animation: cinton8 alternate linear 2 1s;

}

@keyframes cinton8{

from {

top: 0;

left: 0;

}

to {

top: -230rpx;

left: 0rpx;

}

}

.cinton9{

animation: cinton9 alternate linear 2 1s;

}

@keyframes cinton9{

from {

top: 0;

left: 0;

}

to {

top: -230rpx;

left: -230rpx;

}

}

.animt{

animation: fanzhuan 1.2s;

}

@keyframes fanzhuan{

0% {

transform: perspective(150px) rotateY(0deg);

}

50% {

transform: perspective(150px) rotateY(0deg);

}

100% {

transform: perspective(150px) rotateY(179.9deg);

}

}

.js

Page({

data: {

whether: false,

flop:'点击翻牌',

really:'',

implement: 0,

surplus:false,

biutin:'点击翻牌',

},

again:function(e){

if (this.data.implement == 3 || this.data.implement == 0){

this.setData({

whether: false,

flop: '点击翻牌',

really: '',

implement: 0,

surplus: false,

biutin: '点击翻牌',

})

}else{

wx.showToast({

title: '正在执行抽奖中...',

icon: 'none',

duration: 2000

})

return false

}

},

tamin:function(e){

let that = this

let index = e.currentTarget.dataset.index

that.setData({

whether:true,

really: index,

implement:1,

})

setTimeout(function () {

that.setData({

flop: '',

})

}, 500)

setTimeout(function () {

that.setData({

flop:'有奖品',

surplus:true,

implement: 2,

})

}, 1200)

setTimeout(function () {

that.setData({

biutin: '',

})

}, 1700)

setTimeout(function () {

that.setData({

biutin: '没有奖品',

implement:3,

})

}, 2500)

}

})

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上是 微信小程序实现翻牌抽奖动画 的全部内容, 来源链接: utcz.com/z/351753.html

回到顶部