仿双色球抽奖大转盘

news2024/10/7 18:20:25

仿双色球抽奖大转盘

    • 前言
    • 1、页面搭建
    • 2、JS逻辑编写
    • 3、Css样式编写
    • 4、编译发布
    • 5、往期回顾
      • 总结:

前言

需求来时奋笔疾书,需求变时追风逐电 !

年低了,接到部门需求,2天时间要开发一个仿双色球抽奖大转盘,于是,就加班加点的赶工期…
框架vue+uni-app–开发编译小程序
就此项目分享一下开发过程

抽奖活动视频

1、页面搭建

页面搭建主要分为以下步骤:

  • 整体布局搭建
  • 背景音乐
  • 抽奖按钮声音
  • 抽奖摇号声音
  • 球的落地和滚动轨迹
  • 中奖弹窗动画特效
  • 发布上线

2、JS逻辑编写

  • 使用api处理底层声音:uni.createInnerAudioContext()
    • 事件方法采用:播放:play()、销毁:destroy()
    • 文档传送门 uni.createInnerAudioContext
  • 动态添加class属性
  • 控制摇号时间
  • 抽中中奖号码:
    • 1、中奖号码可更加后端返回的中奖号码出结果(优先选择)
    • 2、生成随机数,通过每个号码的设置概率大小出结果(本地测试用)

3、Css样式编写

  • 首次出现使用球的落地轨迹
.diaol_1 {
	animation: dialuodn 1s linear 0.9s backwards;
}
@keyframes dialuodn {
  0% {
    transform: translateY(-200%);
    opacity: 0;
  }
  5% {
    transform: translateY(-200%);
  }
  15% {
    transform: translateY(0);
  }
  30% {
    transform: translateY(-100%);
  }
  40% {
    transform: translateY(0%);
  }
  50% {
    transform: translateY(-60%);
  }
  70% {
    transform: translateY(0%);
  }
  80% {
    transform: translateY(-30%);
  }
  90% {
    transform: translateY(0%);
  }
  95% {
    transform: translateY(-14%);
  }
  97% {
    transform: translateY(0%);
  }
  99% {
    transform: translateY(-6%);
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}
  • 摇号时球滚动的轨迹
.li_1 {
   animation: ballMove1 .6s ease-in-out infinite;
 }
 @keyframes ballMove1 {
  	0%,to {-webkit-transform:translate(0) rotate(70deg);transform:translate(0) rotate(70deg)}
    20% {-webkit-transform:translate(115rpx,-134rpx) rotate(140deg);transform:translate(115rpx,-134rpx) rotate(140deg)}
    40% {-webkit-transform:translate(-2rpx,-135rpx) rotate(210deg);transform:translate(-2rpx,-135rpx) rotate(210deg)}
    60% {-webkit-transform:translate(151rpx,0rpx) rotate(280deg);transform:translate(151rpx,0rpx) rotate(280deg)}
    80% {-webkit-transform:translate(11rpx,0rpx) rotate(350deg);transform: translate(11rpx,0rpx) rotate(350deg)}
  }
  • 中奖弹窗动画特效
属性:pointer-events: none;
属性:pointer-events: auto;
// 整体弹窗使用淡入淡出处理
.amie {
   transition: all 1s ease-in-out; // 新增到全局
 }
// 上面的图片使用定位溢出处理
.img-top {
	position: relative;
 	top: -400rpx; // 默认溢出
 }
 .img-top {
    top: 146rpx; // 正常显示
 }
 
// 中间的图片使用旋转处理
.img-active {
   transform: rotateY(0deg);
   animation: rotate-ani 1s linear;
   @keyframes rotate-ani {
     0% {
       transform: rotateY(0deg);
       opacity: 0;
     }
     100% {
       transform: rotateY(360deg);
       opacity: 1;
     }
   }
 }
// 下面的图片使用定位溢出处理
.img-bottom {
	position: relative;
 	bottom: 400rpx; // 默认溢出
 }
 .img-bottom {
    bottom: 30rpx; // 正常显示
 }
  • 按钮缩放动画
// 缩放动画
  .transform-scale {
    transform:scale(1,1);
    transition: transform 0.1s ease 0s;
  }
  .transform-scale:active {
    transform:scale(0.5,0.5);
  }

4、编译发布

编译发布参考上一篇文章


5、往期回顾


— 获取源码接着往下看!—

vue3 + TS + vite 搭建中后台管理系统(完整项目)
vue3 + JS + vant 搭建移动端H5项目(完整项目)
手把手教 Vue3.2+Vite+Echarts 5 绘制3D线条效果中国地图



总结:

前端路上 | 所知甚少,唯善学。
各位小伙伴有什么疑问,欢迎留言探讨。

— 关注我:前端路上不迷路 —




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1411697.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

malloc()和free()

一、malloc() //格式: void *malloc(size_t str);//举例 double *ptd; ptd (double *) malloc(30*sizeof(double));//30个double类型的值请求内存空间 //并设置ptd指向该位置 malloc函数会找到合适的空闲内存块,这样的内存是匿名的。也就是说&#xff…

利用STM32CubeMX和Keil模拟器,3天入门FreeRTOS(4.2) —— 中断函数中使用队列

前言 (1)FreeRTOS是我一天过完的,由此回忆并且记录一下。个人认为,如果只是入门,利用STM32CubeMX是一个非常好的选择。学习完本系列课程之后,再去学习网上的一些其他课程也许会简单很多。 (2&am…

Android HIDL概述与绑定模式的实现

一、前言 Android O(8.0) 版本之后,底层实现有了比较大的变化,最显著的一个方面就是 HIDL 机制的全面实施。本文对于理解系统源码中 Gnss、Usb、Camera 等模块的工作原理有极大帮助。 二、HIDL 设计目的 在 Android O(8.0) 之前系统的升级牵扯多方协作…

安全用电管理平台方案介绍——Acrelcloud-6000

安全用电管理平台是一个针对电力系统安全管理的平台,旨在提供对电力设备和用电行为进行监控、分析和管理的解决方案。该平台结合了物联网技术、数据分析和远程监控等技术手段,能够实时监测、分析和预警电力系统的安全状况,以便及时采取措施防…

再谈Android View绘制流程

一,先思考何时开始绘制 笔者在这里提醒读者,Android的View是UI的高级抽象,我们平时使用的XML文件也好,本质是设计模式中的一种策略模式,其View可以理解为一种底层UI显示的Request。各种VIew的排布,来自于开…

KernelGPT: LLM for Kernel Fuzzing

KernelGPT: Enhanced Kernel Fuzzing via Large Language Models 1.Introduction2.Background2.1.Kernel and Device Drivers2.2.Kernel Fuzzing2.2.1.Syzkaller规约2.2.2.规约生成 3.Approach3.1.Driver Detection3.2.Specification Generation3.2.1.Command Value3.2.2.Argum…

Vue2学习之第六、七章——vue-router与ElementUI组件库

路由 理解: 一个路由(route)就是一组映射关系(key - value),多个路由需要路由器(router)进行管理。前端路由:key是路径,value是组件。 1.基本使用 安装vue-…

springboot快速写接口

1. 建proj形式 name会变成文件夹的名字,相当于你的项目名称 基础包 2. 基础依赖 3. 配置数据库 这里要打开mysql,并且创建数据库 方法: 安装好数据库,改好账号密码用navicat来建表和账号配置properties.yml文件即可 4.用res…

读AI3.0笔记07_游戏与推理

1. 始于游戏,不止于游戏 1.1. 开发超人类的游戏程序并不是人工智能的最终目的 1.2. AlphaGo所有的版本除了下围棋,其他什么也不会 1.2.1. 其最通用的版本AlphaGo Zero也一样 1.3. 这些游戏程序中没有一个能够将其在一款游戏中学到的知识迁移到其他游…

引领未来:云原生在产品、架构与商业模式中的创新与应用

文章目录 一、云原生产品创新二、云原生架构设计三、云原生商业模式变革《云原生落地 产品、架构与商业模式》适读人群编辑推荐内容简介目录 随着云计算技术的不断发展,云原生已经成为企业数字化转型的重要方向。接下来将从产品、架构和商业模式三个方面&#xff0c…

融合创新:传统企业数字化转型的业务、战略、操作和文化变革

引言 随着科技的不断演进,传统企业正站在数字化转型的前沿,这是一场前所未有的全面变革之旅。数字化已经超越了单纯的技术升级,成为企业保持竞争力、开创未来的必然选择。本文将引领您探讨,迈向数字化未来的传统企业全面数字化转…

回归预测 | Matlab基于SSA-SVR麻雀算法优化支持向量机的数据多输入单输出回归预测

回归预测 | Matlab基于SSA-SVR麻雀算法优化支持向量机的数据多输入单输出回归预测 目录 回归预测 | Matlab基于SSA-SVR麻雀算法优化支持向量机的数据多输入单输出回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab基于SSA-SVR麻雀算法优化支持向量机的数据…

解密:消息中间件的选择与使用:打造高效通信枢纽

目录 第一章:消息中间件介绍 1.1 什么是消息中间件 1.2 消息中间件的作用 1.3 消息中间件的分类 第二章:消息中间件的选择标准 2.1 性能 2.2 可靠性 2.3 可扩展性 2.4 易用性 2.5 社区支持 2.6 成本 第三章:常见的消息中间件对比…

docker 网络及如何资源(CPU/内存/磁盘)控制

安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、 none 、host docker网络模式 Host 容器与宿主机共享网络namespace,即容器和宿主机使用同一个IP、端口范围(容器与宿主机或其他使…

[ACM学习] 进制转换

进制的本质 本质是每一位的数位上的数字乘上这一位的权重 将任意进制转换为十进制 原来还很疑惑为什么从高位开始,原来从高位开始的,可以被滚动地乘很多遍。 将十进制转换为任意进制

VsCode提高生产力的插件推荐-持续更新中

别名路径跳转 自定义配置// 文件名别名跳转 "alias-skip.mappings": { "~/": "/src", "views": "/src/views", "assets": "/src/assets", "network": "/src/network", "comm…

CNN卷积理解

1 卷积的步骤 1 过滤器(卷积核)(Filter或Kernel): 卷积层使用一组可学习的过滤器来扫描输入数据(通常是图像)。每个过滤器都是一个小的窗口,包含一些权重,这些权重通过训…

Supervised Contrastive 损失函数详解

有什么不对的及时指出,共同学习进步。(●’◡’●) 有监督对比学习将自监督批量对比方法扩展到完全监督设置,能够有效地利用标签信息。属于同一类的点簇在嵌入空间中被拉到一起,同时将来自不同类的样本簇推开。这种损失显示出对自然损坏很稳…

支付宝AES如何加密

继之前给大家介绍了 V3 加密解密的方法之后,今天给大家介绍下支付宝的 AES 加密。 注意:以下说明均在使用支付宝 SDK 集成的基础上,未使用支付宝 SDK 的小伙伴要使用的话老老实实从 AES 加密原理开始研究吧。 什么是AES密钥 AES 是一种高级加…

k8s实例

k8s实例举例 (1)Kubernetes 区域可采用 Kubeadm 方式进行安装。 (2)要求在 Kubernetes 环境中,通过yaml文件的方式,创建2个Nginx Pod分别放置在两个不同的节点上,Pod使用动态PV类型的存储卷挂载…