首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用60行代码实现一个高性能的圣诞抽抽乐H5小游戏(含源码)

为了进一步提高性能,本文介绍的方法,将使用坐标法,将操作dom的成本降低,完全由js实现滑块的路径的计算,滑块元素采用绝对定位,让其脱离文档流,避免其他元素的重绘等等,最后点击按钮我们会使用防抖函数来避免频繁执行函数...九宫格布局实现 为了让大家更加熟悉dom结构,这里我就不用js动态生成了.如下html结构: 圣诞抽抽乐...由上图我们可以知道,一个九宫格的4条边,可以用以上8个坐标收尾连接起来,那么我们可以基于这个规律.来生成环形坐标集合.代码如下: /** * 生成n维环形坐标 * @param {number} n...number} speed 运动的初始速度 * @param {number} i 运动的初始位置 * @param {number} len 路径的长度 * @param {number} random 中奖坐标...Math.floor(Math.random() * len)) { setTimeout(() => { if(n > 0) { // 如果n为1,则设置中奖数值

1.4K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何优雅的实现一个九宫格抽奖

    作者:黄鹏 如何优雅的实现一个九宫格抽奖 九宫格抽奖是在移动端常见开发功能点之一,那如何实现一个高度可复用的九宫格逻辑就显的特别重要了。接下来我们来分析下如何实现一个优雅的抽奖功能。 功能分析 ?...然后js 中只需要不停的替换class名称就行了。...部分的代码搬到sass 中,减少js 代码的冗余,并通过css 3d 加速,使用页面效果更加流畅。...总结 优点:因为用css写的,效果看起来比js写起来的顺滑许多。 缺点:兼容代码过去。且不易扩展。如果不是九宫格,是十宫格,十一宫格。修改的地方感觉就多了。...那么如何写出更加通用的代码。便于大家使用呢? 经过多次尝试,发现九宫格有如下特点: 虽然是旋转效果,但是旋转方式各有不同。因此不应该过多依赖于css(方案二的弊端)。 九宫格,抽奖是抽八个奖。

    2.1K10

    vue开发微信商城项目总结之五--vue实现九宫格抽奖

    根据产品提出的需求, 需要做一个抽奖活动页面 需求简介 九宫格抽奖,中奖概率可配置,以九宫格转盘的形式进行抽奖,奖品分为三类, 实物类奖品,收货人信息可编辑,默认为登陆用户,可生成订单 福币类奖品,直接发放...,可在交易明细中查看 优惠劵类奖品,交易明细中查看 九宫格转动之后,中奖之前,要进行降速处理,获奖后可以在右上角查看中奖记录, 活动未开始不能抽奖,并且更换按钮状态 示意图 ?...该项目脱离了Jquery,采用原生js和vue实现 项目地址在这里 后台接口结构 { "bizCode": "000000", "bizMessage": "", "data": {...endTime": 1601446191000, "currTime": 1506751791732, "title": "奖品丰厚", "lotteryDesc": "100中奖

    1.4K20

    如何优雅的实现一个九宫格抽奖

    作者:黄鹏 如何优雅的实现一个九宫格抽奖 九宫格抽奖是在移动端常见开发功能点之一,那如何实现一个高度可复用的九宫格逻辑就显的特别重要了。接下来我们来分析下如何实现一个优雅的抽奖功能。 功能分析 ?...然后js 中只需要不停的替换class名称就行了。...部分的代码搬到sass 中,减少js 代码的冗余,并通过css 3d 加速,使用页面效果更加流畅。...总结 优点:因为用css写的,效果看起来比js写起来的顺滑许多。 缺点:兼容代码过去。且不易扩展。如果不是九宫格,是十宫格,十一宫格。修改的地方感觉就多了。...那么如何写出更加通用的代码。便于大家使用呢? 经过多次尝试,发现九宫格有如下特点: 虽然是旋转效果,但是旋转方式各有不同。因此不应该过多依赖于css(方案二的弊端)。 九宫格,抽奖是抽八个奖。

    1.3K10

    京东开源了十二个抽奖组件!!!

    想当年大师兄刚入行的时候,领导分配的第一个任务就是做一个九宫格抽奖程序,不仅要求中奖概率还要求中奖范围,更重要的是不能有人中奖!!!...使用了当下极为先进的Vue3与TypeScript和NutUI 特点 一共包含 12 种抽奖组件 UI 设计基于京东 APP 10.0 视觉规范 官网提供详尽的文档和充足的代码示例 基于 Vue 3.0...,也支持 TypeScript,支持按需引入 便捷灵活的自定义设置 包含12种常见的抽奖组件 TurnTable 大转盘抽奖 Marquee 跑马灯抽奖 quareNine 九宫格抽奖 ScratchCard...GiftRain 红包雨 LuckShake 摇一摇 DollMachine 娃娃机 ShakeDice 摇骰子 GuessGift 你藏我猜 每个组件都可以自由的配置,支持设置奖品池、中奖奖品

    2.8K30

    通用抽奖工具之需求分析

    抽奖,每个整点一般可参与一次 打地鼠 每日整点打地鼠抽奖,每个整点一般可参与一次 大转盘(九宫格) 某个时间段,转盘抽奖,每个场一般可参N次 考眼力 某个时间段,旋转杯子猜小球在哪个被子里,猜对可抽奖,...本小节每类抽奖活动的需求配置,分为如下三个部分: 活动配置 场次配置 奖品配置 首先,第一类: 按时间抽奖的需求配置 表格可左右滑动 类型 活动名称 特点 按时间抽奖 红包雨、糖果雨、打地鼠、幸运大转盘(九宫格...)、考眼力 时间维度 按时间抽奖 是否多场次 单场次次数限制(次) 总场次次数限制(次) 红包雨 是 1 N 糖果雨 是 1 N 打地鼠 是 N N 幸运大转盘(九宫格) 否 N N 考眼力 否 N...第四要素:中奖概率 抽奖自然离不开奖品的中奖概率的设置。关于中奖概率我们支持如下灵活的配置: 1. 手动设置奖品中奖概率 2....100%,否则剩余部分默认添加为空奖的中奖概率。

    6.3K10

    Python自动统计微博抽奖中奖男女比例(附代码

    今天来写一个自动计算微博抽奖男女比例的代码,很早就应该发这篇了,只是不想蹭热点(才不是拖更)。...整个的过程大概分为三步: S1:从抽奖公示页获取所有中奖者的微博ID S2:由每个中奖者的微博ID进入其相应主页,获得需要的个人信息(性别、粉丝数、微博数等) S3:对收集到的信息进行相应的汇总分析 接下来一步一步地进行就好了...中奖名单每页公示3个,当你点下一页的时候会以AJAX方式请求数据。 因此我们只需要请求第一页以后,获取获奖的总人数,然后循环分别获取其余AJAX请求。 ?...response.text 我们可以看到AJAX返回的内容是一个JSON,但是这个JSON内的数据却又没有那么的友好,并不是我们常见的直接给出了每个用户的数据字典,而是给了我们一个HTML标签包裹的代码块...运行代码,我们便可以得到所有中奖用户ID组成的一个列表了。

    89630

    通用抽奖工具之需求分析

    抽奖,每个整点一般可参与一次 打地鼠 每日整点打地鼠抽奖,每个整点一般可参与一次 大转盘(九宫格) 某个时间段,转盘抽奖,每个场一般可参N次 考眼力 某个时间段,旋转杯子猜小球在哪个被子里,猜对可抽奖,...本小节每类抽奖活动的需求配置,分为如下三个部分: 活动配置 场次配置 奖品配置 首先,第一类: 按时间抽奖的需求配置 表格可左右滑动 类型 活动名称 特点 按时间抽奖 红包雨、糖果雨、打地鼠、幸运大转盘(九宫格...)、考眼力 时间维度 按时间抽奖 是否多场次 单场次次数限制(次) 总场次次数限制(次) 红包雨 是 1 N 糖果雨 是 1 N 打地鼠 是 N N 幸运大转盘(九宫格) 否 N N 考眼力 否 N...第四要素:中奖概率 抽奖自然离不开奖品的中奖概率的设置。关于中奖概率我们支持如下灵活的配置: 1. 手动设置奖品中奖概率 2....100%,否则剩余部分默认添加为空奖的中奖概率。

    6.4K20

    仿linux系统九宫格屏保程序:js网页版

    警告:以下代码由季雨林本人探索写出,经过IE,FireFox,Chrome测试 发现Chrome(以及360的极速浏览器)浏览器对于javascript的支持明显胜于其他浏览器,请勿在电脑上长时间开启该页面...,即使是js引擎强大的Chrome也会在运行半小时之后占用满内存,而其他浏览器甚至不能流畅运行,该页面制作初衷是为了仿造一种屏幕保护效果(雨林木风Linux系统:九宫格屏保),页面刚启动时的CPU占用达到顶峰时开始正常速度运行...(200ms切换颜色) 代码如下(新建文本文件写入以下代码,然后把该文件的后缀名改成“.html”即可): Div仿屏幕保护效果 季雨林 <script type="text/javascript" src="divControl.<em>js</em>

    1.4K10

    一个基于 Js + Canvas 的【大转盘 & 九宫格 & 老虎机】抽奖库!

    说多了都是泪,我们还是看看怎么实现吧~ 关于 lucky-canvas 一个基于 Js + Canvas 的【大转盘 & 九宫格 & 老虎机】抽奖, 致力于为 web 前端提供一个功能强大且专业可靠的组件...lucky-canvas 功能特点 自由配置 奖品 / 文字 / 图片 / 颜色 / 按钮均可自由配置;支持同步 / 异步抽奖;中奖概率前 / 后端可控 多端适配 支持 JS / TS / JQ / Vue...UniApp / Taro 等;并且多端使用 / 表现形式完全一致 响应式 自动根据设备 dpr 调整清晰度;并支持使用 百分比 / rem / rpx 属性来适配移动端布局 快速上手体验 1.在 Js...安装 npm install @lucky-canvas/vue@latest # 或者 yarn 安装 yarn add @lucky-canvas/vue@latest 然后找到 main.js...LuckyWheel, LuckyGrid } from '@lucky-canvas/vue' // 大转盘抽奖 Vue.components('LuckyWheel', LuckyWheel) // 九宫格抽奖

    3.5K30

    JS代码混淆 | js 逆向系列

    /UglifyJS/ https://github.com/LiPinghai/UglifyJSDocCN/blob/master/README.md 使用方法 npm install uglify-js...-g uglifyjs example.js -c -m --mangle-props -c 代码压缩 -m 代码混淆 --mangle-props 混淆属性名 -b 美化显示 // 原代码 const...JShaman https://www.jshaman.com/ JShaman 是国内公司开发的js代码加密商业产品 免费版可以直接使用 // 原代码 const person = { age...,通过数组、字典等各种形式存储、拼接、替换等,最终进行还原,这里面没有利用到复杂的语法以及js 语言本身的特性,所以我们一点点解开也学不到什么; 这个代码就不一样了,我们一步一步解开它,尝试去学习其中的思路...console.log(c) 这次我们设计三个返回值,分别是函数定义、数值、字符串 看到这,我都蒙了,经过查询资料,我找到了两个维度的复杂的原因 JavaScript 中函数只能有一个返回值,你就说这玩意如果没学过 js

    2.4K10

    调试JS代码

    记录下近期对JS代码的调试过程 性能分析 启动程序之后,打开google浏览器对应页面,按F12或者Ctrl+Shift+I进入 开发者工具页面 目前主要使用的功能有: Performance....性能评估,比如我想看下页面刷新的性能瓶颈所在,先点击 按钮,然后进行页面操作,当页面刷新完成,再点击 按钮,则会生成性能报告,可以看到资源消耗,JS代码的执行逻辑等 Sources....性能报告页面的 部分,可以通过点击色块查看其所在的js代码文件,如 点击则会跳转到 功能栏,有了源文件就可以进行断点调试;这里注意部分js文件是压缩后的文件,建议手动修改程序替换成可读性更强的原始代码文件...查看程序的打印输出,比如我想知道某个函数的执行时间,可以在js代码中进行修改 当js代码执行之后,可以在console输出中看到foo的执行时间 Network....代码使用for循环进行操作,也就是线性复杂度,计算耗时随数据量的增大而线性增大 通过debug观察发现颜色数组会有不少重复的数值,而同样的输入会导致相同的输出,然后对整个数据的1M个点进行统计分析,发现重复率相当高

    19K10

    js代码规范

    前言 在js代码开发中,我简单的总结出了以下规则,后面会陆续补充并且对规范进行分类。...js代码建议保存到后缀名.js的文件中 js代码不建议放在html中,原因有:不能被缓存,会增大网页文件的大小,可维护性不高,会影响页面的加载。...js吧任何表达式都当一条简单语句,会导致一些隐性的错误。如果自己没加分号,那么js解释器会自动添加分号,按照自己能读懂的断句。 9.2 复合语句 也称为语句块,被包在大括号内部。...比如对象 var obj={} ;var arr=[] eval eval是最容易混乱使用的js函数,他可以执行内部入参的js函数或者表达式,可以直接解析变量。不建议使用 。...尽量使用语法严格模式 消除代码之中的不友好;代码运行更快 ;保证运行的安全 ;为新版本的js做好铺垫。 22.

    8.9K30
    领券