微信小程序抽奖-翻牌
背景ps:本次开发基于wepy框架? 这个需求本身其实不难,主要是分为三步;
第一步:卡牌翻转我们先在dom中渲染9个卡牌。 <view class="card-module"> "card {{showClass ? 'change' : ''}}> "back card-item"{{cardItem.back}}</view> </repeat> 在数据中生成模拟卡牌数据
front '正面1',
... { '正面9' ],0);"> showClass false在样式中把卡牌的基本样式渲染出来
flex-direction row; transformtranslate3d(0); width200rpx; lineheight; color #fff; height%; front backgroundcolor red rotateY0deg); back#009fff; 1} ); { } 效果如下 这里有些css属性可能需要大部补充学习一下 css3 backface-visibility 属性 定义和用法? CSS3 perspective 属性 perspective 属性定义 3D 元素距视图的距离,以像素计。该属性允许您改变 3D 元素查看 3D 元素的视图。? 第二步:卡牌打乱由于业务上是抽奖使用的,所以选择的方案是:翻转后,卡牌收回到中间的卡牌中间,然后再让卡牌回到原来的位置。? {{cardItem.animationData}}" > script
clearTimeout(timer) $apply()
// 洗牌 curCardDatamap(( index animation wepycreateAnimation({ timingFunction'ease' animation.export() animationtranslate translateUnit).step() : break (-break () 4: break () 6: break () 8: break cardData curCardData 算法后面需要优化,我们先完成功能效果,? script代码
// 抽奖
curOpen curIndex less
} 效果如下 现在我们就已经完成了基本的需求;但是在位移动画时候代码写的太丑陋了。? 那我们是不是可以在卡牌中也使用二维数组布局属性 lineTotal 3// 单行数 x index % lineTotal twoArry {x y} 在位移动画中使用二维布局的差值进行位移
'ease' translateUnitX translateUnit *1 itemtwoArry) translateUnitX translateUnitY})
这样整个动画就算完成了, demo请前往githubgithub.com/fishmankkk/… 作者:fishman? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |