小程序实现一个扭蛋机抽奖详细代码

时间: 2024-03-12 20:43:29 浏览: 20
好的,以下是一个简单的小程序实现扭蛋机抽奖的代码,具体实现细节可以根据自己的需要进行调整和修改: 1. HTML代码: ``` <!-- 扭蛋机界面 --> <div class="gashapon"> <div class="gashapon-body"> <div class="gashapon-window"> <div class="gashapon-inner"></div> </div> <div class="gashapon-handle"></div> </div> <button class="gashapon-button">抽奖</button> </div> <!-- 中奖记录 --> <div class="record"> <h3>中奖记录</h3> <ul class="record-list"></ul> </div> ``` 2. CSS代码: ``` /* 扭蛋机样式 */ .gashapon { width: 300px; height: 400px; position: relative; margin: 50px auto; } .gashapon-body { width: 100%; height: 100%; background: #eee; border-radius: 20px; position: relative; overflow: hidden; } .gashapon-window { width: 100%; height: 70%; background: #fff; border-top-left-radius: 20px; border-top-right-radius: 20px; position: relative; overflow: hidden; box-shadow: 0 0 10px #444; } .gashapon-inner { width: 100%; height: 100%; background: url("gashapon.png") no-repeat center; background-size: contain; position: absolute; top: 0; left: 0; animation: gashapon-rotate 5s linear infinite; transform-origin: center center; } .gashapon-handle { width: 50px; height: 50px; background: #f00; border-radius: 50%; position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); } .gashapon-button { display: block; width: 100px; height: 40px; background: #f00; color: #fff; border: none; border-radius: 20px; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); margin-bottom: 20px; cursor: pointer; } /* 中奖记录样式 */ .record { width: 300px; margin: 0 auto; } .record h3 { text-align: center; } .record-list { list-style: none; padding: 0; margin: 0; } .record-list li { margin-bottom: 10px; } ``` 3. JavaScript代码: ``` // 定义奖品列表 var prizeList = [ { name: "一等奖", src: "prize1.png" }, { name: "二等奖", src: "prize2.png" }, { name: "三等奖", src: "prize3.png" }, { name: "幸运奖", src: "prize4.png" } ]; // 获取DOM元素 var gashapon = document.querySelector(".gashapon"); var gashaponInner = document.querySelector(".gashapon-inner"); var gashaponButton = document.querySelector(".gashapon-button"); var recordList = document.querySelector(".record-list"); // 定义变量 var isRunning = false; // 是否正在转动 var prizeIndex = -1; // 中奖奖品索引 // 抽奖函数 function lottery() { if (isRunning) return; // 如果正在转动,则退出函数 isRunning = true; // 设置正在转动标志 // 随机生成一个奖品索引 prizeIndex = Math.floor(Math.random() * prizeList.length); // 转动扭蛋机 gashaponInner.style.animationPlayState = "running"; // 2秒后停止转动 setTimeout(function() { isRunning = false; gashaponInner.style.animationPlayState = "paused"; showPrize(prizeList[prizeIndex]); // 显示中奖信息 }, 2000); } // 显示中奖信息 function showPrize(prize) { // 创建中奖信息DOM元素 var li = document.createElement("li"); var img = document.createElement("img"); img.src = prize.src; var span = document.createElement("span"); span.textContent = prize.name; li.appendChild(img); li.appendChild(span); // 将中奖信息添加到记录列表中 recordList.appendChild(li); } // 绑定抽奖按钮的单击事件 gashaponButton.addEventListener("click", lottery); ``` 以上就是一个简单的小程序实现扭蛋机抽奖的代码,可以根据自己的需要进行修改和完善。

相关推荐

最新推荐

recommend-type

【图像融合】加权算法高分辨率和低分辨率图像融合(含清晰度)【含Matlab源码 4405期】.zip

Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
recommend-type

源代码-BASISBBS最易ASP论坛 v1.0.7.zip

源代码-BASISBBS最易ASP论坛 v1.0.7.zip
recommend-type

【图像去噪】高斯滤波+均值滤波+中值滤波+双边滤波图像去噪(含信噪比)【含Matlab源码 2747期】.zip

Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
recommend-type

华为2019创新大赛的工程文件+各种模型的backbone和tricks

华为大模型 华为2019创新大赛的工程文件+各种模型的backbone和tricks 华为2019创新大赛的工程文件+各种模型的backbone和tricks 华为2019创新大赛的工程文件+各种模型的backbone和tricks 华为2019创新大赛的工程文件+各种模型的backbone和tricks 华为2019创新大赛的工程文件+各种模型的backbone和tricks 华为2019创新大赛的工程文件+各种模型的backbone和tricks
recommend-type

【脑肿瘤检测】 GUI SOM脑肿瘤检测【含Matlab源码 2322期】.zip

【脑肿瘤检测】 GUI SOM脑肿瘤检测【含Matlab源码 2322期】
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

云原生架构与soa架构区别?

云原生架构和SOA架构是两种不同的架构模式,主要有以下区别: 1. 设计理念不同: 云原生架构的设计理念是“设计为云”,注重应用程序的可移植性、可伸缩性、弹性和高可用性等特点。而SOA架构的设计理念是“面向服务”,注重实现业务逻辑的解耦和复用,提高系统的灵活性和可维护性。 2. 技术实现不同: 云原生架构的实现技术包括Docker、Kubernetes、Service Mesh等,注重容器化、自动化、微服务等技术。而SOA架构的实现技术包括Web Services、消息队列等,注重服务化、异步通信等技术。 3. 应用场景不同: 云原生架构适用于云计算环境下的应用场景,如容器化部署、微服务
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。