返回顶部
首页 > 资讯 > 精选 >微信抽奖小程序类似翻牌样式如何做
  • 811
分享到

微信抽奖小程序类似翻牌样式如何做

2023-06-26 08:06:29 811人浏览 泡泡鱼
摘要

这篇文章主要介绍了微信抽奖小程序类似翻牌样式如何做的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信抽奖小程序类似翻牌样式如何做文章都会有所收获,下面我们一起来看看吧。翻牌打乱活动抽奖活动,大概需求是这样的,九

这篇文章主要介绍了微信抽奖小程序类似翻牌样式如何做的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信抽奖小程序类似翻牌样式如何做文章都会有所收获,下面我们一起来看看吧。

翻牌打乱活动抽奖活动,大概需求是这样的,九宫格卡牌,先正面展示所有奖品,然后卡牌翻转,打乱排序,点击卡牌,然后抽奖。

微信抽奖小程序类似翻牌样式如何做

 1卡牌翻转

我们先在dom中渲染9个卡牌。

<view class="card-module"><view class="card {{showClass ? 'change' : ''}}><view class="front card-item">{{cardItem.front}}</view><view class="back card-item">{{cardItem.back}}</view></view></repeat></view>

在数据中生成模拟卡牌数据

cardData: [{animationData: {},front: '正面1',back: '反面1'},......{animationData: {},front: '正面9',back: '反面9'}],showClass: false,

在样式中把卡牌的基本样式渲染出来

.card-module{padding: 45rpx;display: flex;flex-direction: row;flex-wrap: wrap;transfORM:translate3D(0,0,0);.card{width: 200rpx;height: 200rpx;line-height: 200rpx;text-align: center;color: #fff;margin: 10rpx;position:relative;overflow:hidden;.card-item{position:absolute;left:0;top:0;width:100%;height:100%;transition:all .5s ease-in-out;transform-style:preserve-3d;backface-visibility:hidden;box-sizing:border-box;}.front{background-color: red;transform: rotateY(0deg);z-index:2;}.back{background-color: #009fff;transform: rotateY(180deg);z-index:1;}}.card.change{.front{z-index:1;transform: rotateY(180deg);}.back{z-index:2;transform: rotateY(0deg);}}}

这里有些CSS属性可能需要大部补充学习一下

css3 backface-visibility 属性

定义和用法  backface-visibility 属性定义当元素不面向屏幕时是否可见。  如果在旋转元素不希望看到其背面时,该属性很有用。

CSS3 perspective 属性

perspective 属性定义 3D 元素距视图的距离,以像素计。该属性允许您改变 3D 元素查看 3D 元素的视图。  当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身。

2卡牌打乱

由于业务上是抽奖使用的,所以选择的方案是:翻转后,卡牌收回到中间的卡牌中间,然后再让卡牌回到原来的位置。  关于小程序的原生框架有支持的动画接口,若不了解的请前往:  developers.weixin.qq.com/miniprogram&hellip;  在对动画有基本了解之后,我们可以开始在翻转的基础上加上打乱的动画了  微信小程序的动画接口使用方式是在dom对象上面加上animation对象。  dom

<view class="card-module"><view class="card {{showClass ? 'change' : ''}} animation="{{cardItem.animationData}}" ><view class="front card-item">{{cardItem.front}}</view><view class="back card-item">{{cardItem.back}}</view></view></repeat></view>

script

allMove () {// 110 是卡牌宽度加边距this.methods.shuffle.call(this, 110)let timer = setTimeout(() => {clearTimeout(timer)this.methods.shuffle.call(this, 0)this.$apply()}, 1000)},// 洗牌shuffle (translateUnit) {let curCardData = this.cardDatacurCardData.map((item, index) => {let animation = wepy.createAnimation({duration: 500,timingFunction: 'ease'})animation.export()switch (index) {case 0:animation.translate(translateUnit, translateUnit).step()breakcase 1:animation.translate(0, translateUnit).step()breakcase 2:animation.translate(-translateUnit, translateUnit).step()breakcase 3:animation.translate(translateUnit, 0).step()breakcase 4:animation.translate(0, 0).step()breakcase 5:animation.translate(-translateUnit, 0).step()breakcase 6:animation.translate(translateUnit, -translateUnit).step()breakcase 7:animation.translate(0, -translateUnit).step()breakcase 8:animation.translate(-translateUnit, -translateUnit).step()break}item.animationData = animation.export()})this.cardData = curCardDatathis.$apply()},

3卡牌翻转

dom代码

<view class="card-module"><view class="card {{showClass ? 'change' : ''}} {{curIndex === index ? 'getprize' : ''}}" @tap="itemChage({{cardItem}}, {{index}})" animation="{{cardItem.animationData}}" ><view class="front card-item">{{cardItem.front}}</view><view class="back card-item">{{cardItem.back}}</view></view></repeat></view>

script代码

data中定义一个curIndex = -1的对象data = {curOpen: -1,}methods = {// 抽奖itemChage (item, curIndex) {this.cardData[curIndex].front = 'iphone x'console.log(item, curIndex)this.curOpen = curIndex}}

less

.card.getprize{.front{z-index:2;transform: rotateY(0deg);}.back{z-index:1;transform: rotateY(180deg);}}

那我们是不是可以在卡牌中也使用二维数组布局属性

resetData () {const total = 9 // 总数const lineTotal = 3 // 单行数curCardData.map((item, index) => {let curCardData = this.cardDatalet x = index % lineTotallet y = parseInt(index / lineTotal)item.twoArry = {x, y}})}

在位移动画中使用二维布局的差值进行位移

// 洗牌shuffle (translateUnit) {let curCardData = this.cardDatacurCardData.map((item, index) => {let animation = wepy.createAnimation({duration: 500,timingFunction: 'ease'})animation.export()const translateUnitX = translateUnit * (1 - item.twoArry.x)const translateUnity = translateUnit * (1 - item.twoArry.y)animation.translate(translateUnitX, translateUnitY).step()item.animationData = animation.export()})this.cardData = curCardDatathis.$apply()},

关于“微信抽奖小程序类似翻牌样式如何做”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“微信抽奖小程序类似翻牌样式如何做”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 微信抽奖小程序类似翻牌样式如何做

本文链接: https://lsjlt.com/news/308057.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 微信抽奖小程序类似翻牌样式如何做
    这篇文章主要介绍了微信抽奖小程序类似翻牌样式如何做的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信抽奖小程序类似翻牌样式如何做文章都会有所收获,下面我们一起来看看吧。翻牌打乱活动抽奖活动,大概需求是这样的,九...
    99+
    2023-06-26
  • 微信小程序如何实现走马灯式抽奖
    今天小编给大家分享一下微信小程序如何实现走马灯式抽奖的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。先来看下效果设置奖项awa...
    99+
    2023-06-30
  • 微信小程序实现走马灯式抽奖
    本文实例为大家分享了微信小程序实现走马灯式抽奖的具体代码,供大家参考,具体内容如下 先来看下效果 设置奖项 awardList是从后台拿到的奖项数组,list不够八位时填充谢谢参与...
    99+
    2024-04-02
  • 微信小程序如何实现翻牌小游戏
    这篇文章主要介绍了微信小程序如何实现翻牌小游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下一、新建一个quick start项...
    99+
    2024-04-02
  • 微信小程序中如何使用css3动画实现扭蛋抽奖机
    这篇文章主要介绍了微信小程序中如何使用css3动画实现扭蛋抽奖机,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果图wxml文件:<v...
    99+
    2024-04-02
  • 微信小程序如何做店铺
    今天小编给大家分享一下微信小程序如何做店铺的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。  1.微信小程序怎么做店铺  1....
    99+
    2023-06-26
  • 小程序微信认证如何做
    这篇文章主要介绍“小程序微信认证如何做”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“小程序微信认证如何做”文章能帮助大家解决问题。  小程序微信认证有哪些特权  1、已认证小程序账号可申请微信支付功...
    99+
    2023-06-26
  • 微信小程序如何设置字体样式
    本文小编为大家详细介绍“微信小程序如何设置字体样式”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序如何设置字体样式”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一.前言我们的目标是做出以下效果。在实现上...
    99+
    2023-07-05
  • 微信小程序中如何自定义样式
    在微信小程序中,可以通过以下几种方式自定义样式: 使用全局样式:在app.wxss文件中定义全局样式,然后在页面或组件中引用。全...
    99+
    2024-04-02
  • 微信小程序怎么实现类似ChatGPT的流式传输
    这篇文章主要介绍“微信小程序怎么实现类似ChatGPT的流式传输”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序怎么实现类似ChatGPT的流式传输”文章能帮助大家解决问题。小程序上实现流失...
    99+
    2023-07-05
  • 微信小程序如何实现车牌键盘
    这篇文章主要介绍“微信小程序如何实现车牌键盘”,在日常操作中,相信很多人在微信小程序如何实现车牌键盘问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序如何实现车牌键盘”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-02
  • 微信小程序二级分销如何做
    这篇文章主要介绍“微信小程序二级分销如何做”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序二级分销如何做”文章能帮助大家解决问题。1。定义简而言之,微信服务平台组有一个用于小程序的套接字,允...
    99+
    2023-06-27
  • 微信小程序下拉刷新如何做
    这篇文章主要介绍了微信小程序下拉刷新如何做的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序下拉刷新如何做文章都会有所收获,下面我们一起来看看吧。onPullDownRefresh在 Page 中定义 o...
    99+
    2023-06-26
  • 微信小程序button组件如何自定义样式
    本篇内容主要讲解“微信小程序button组件如何自定义样式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序button组件如何自定义样式”吧!背景颜色wxml代码<button c...
    99+
    2023-06-26
  • 个人简单的微信小程序如何做
    这篇文章主要讲解了“个人简单的微信小程序如何做”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“个人简单的微信小程序如何做”吧!  一、常规代码式  一般有技术实力的公司开发小程序是依照微信官方...
    99+
    2023-06-26
  • 【小程序】小程序如何实现滑动翻页(类似刷短视频的交互效果)
    在微信小程序中实现上下滑动翻页的效果其实非常简单,可以说一学就会。 这篇文章将非常详细地教大家如何实现这一交互: 数据准备 首先我们在 Page 的 data 属性中添加两个变量: data: { ...
    99+
    2023-09-12
    小程序
  • 微信小程序如何设置基本的页面样式,做出用户界面UI
    目录一、总体样式二、Flex 布局三、WeUI四、加入图片五、图片轮播一、总体样式 微信小程序允许在顶层放置一个app.wxss文件,里面采用 CSS 语法设置页面样式。这个文件的设...
    99+
    2022-12-03
    微信小程序设置页面样式 微信小程序页面样式
  • 刚上线的微信小程序如何做推广
    微信小程序做推广的方式有:1.关键词推广;2.朋友圈推广;3.线下推广;4.关联公众号推广;微信小程序做推广的方式有以下几种关键词推广微信小程序具体自定义关键词推广功能,只需要在微信小程序后台中点击“推广”再选择“添加关键词”输入需要关联的...
    99+
    2024-04-02
  • 微信小程序自定义关键词如何做
    本文小编为大家详细介绍“微信小程序自定义关键词如何做”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序自定义关键词如何做”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。  自定义推广关键词常见问题  1、提...
    99+
    2023-06-26
  • 微信小程序中如何实现JS动态修改样式
    这篇文章主要为大家展示了“微信小程序中如何实现JS动态修改样式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序中如何实现JS动态修改样式”这篇文章吧。微...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作