JS实现抽奖转盘

news/2025/2/5 13:59:19/

抽奖转盘.gif

  • 实现代码

HTML

<html>
<head><meta charset="utf-8" /><link href="css.css" type="text/css" rel="stylesheet" />
</head>
<body><div class="bg"><div class="pointer" id="pointer"><img src="images/pointer.png" /></div><div class="turntable" id="turntable"><img src="images/turntable.png" /></div></div><script src="jquery-3.3.1.min.js" type="text/javascript" rel="stylesheet"></script><script src="rotate.js" type="text/javascript" rel="stylesheet" ></script><script src="js.js" type="text/javascript"></script>
</body>
</html>

CSS

<html>
<head><meta charset="utf-8" /><link href="css.css" type="text/css" rel="stylesheet" />
</head>
<body><div class="bg"><div class="pointer" id="pointer"><img src="images/pointer.png" /></div><div class="turntable" id="turntable"><img src="images/turntable.png" /></div></div><script src="jquery-3.3.1.min.js" type="text/javascript" rel="stylesheet"></script><script src="rotate.js" type="text/javascript" rel="stylesheet" ></script><script src="js.js" type="text/javascript"></script>
</body>
</html>

JS

$(function(){var bRotate=false;$("#pointer").click(function(){if(bRotate) return false;var item=rnd(0,10); //生成0~10的随机数console.log(item);switch(item){case 0:rotateFn(337,'未中奖');break;case 1:rotateFn(26, '免单4999元');break;case 2:rotateFn(88, '免单50元');break;case 3:rotateFn(137, '免单10元');break;case 4:rotateFn(185, '免单5元');break;case 5:rotateFn(185, '免单5元');break;case 6:rotateFn(235, '免分期服务费');break;case 7:rotateFn(287, '提高白条额度');break;case 8:   //增加"未中奖"概率rotateFn(337, '未中奖');break;case 9:rotateFn(337, '未中奖');break;case 10:rotateFn(0, 337, '未中奖');break;}})function rnd(n,m){var num=Math.floor(Math.floor(Math.random()*(m-n+1)+n))return num;}function rotateFn(angles,txt){  //控制轮盘在angle度停下bRotate=!bRotate;$('#turntable').stopRotate();$("#turntable").rotate({angle:0,                //旋转的角度animateTo:angles+1800,  //从当前角度旋转多少度duration:3000,          //持续时间callback:function(){    //回调函数alert(txt);bRotate=!bRotate;}})}
})
不知道朋友们有没有发现,这个抽奖转盘中奖率会不会太高了一点,这要是用于实际操作岂不是要亏到死,所以接下来我们就要改变它的中奖概率啦
方法一:

往前面的JS看,在case 8 ,9 ,10是不是都是在重复操作,这是在干什么呢?…最笨的方法,增加“未中奖”的
概率,通过增加随机数(原本只需要在07中选,现在在010中选,有4/11的可能性不中奖)来增加不中奖
的 可能性

方法二:

在0~7中抽取随机数的时候,如果抽到的是“1”(免单4999元),我就让它不要这个随机数,继续产生一个随
机数,如果又抽到“1”,我就还让他继续产生随机数,如果它还调皮继续是“1”,那么我就让它继续产生随机
数,一直到不是1就让它return。
说了这么多…还不如直接上代码

function rnd(n, m){var num=Math.floor(Math.random()*(m-n+1)+n) //在0~7中找一个随机数//设置概率if(num==0||num==4||num==5||num==7){return num;}else{num=Math.floor(Math.random()*(m-n+1)+n);if(num==0||num==4||num==5||num==7||num==3){return num;}else{num=Math.floor(Math.random()*(m-n+1)+n);if(num==0||num==4||num==5||num==7||num==3||num==2||num==6){return num}else{num=Math.floor(Math.random()*(m-n+1)+n);if(num==0||num==4||num==5||num==7||num==3||num==2||num==6){return num}else{num=Math.floor(Math.random()*(m-n+1)+n);if(num==0||num==4||num==5||num==7||num==3||num==2||num==6){return num}else{num=Math.floor(Math.random()*(m-n+1)+n);  //抽到“免单4999元”的概率是1/117649return num;}}}}}}

这种方法有什么不好呢?相信大家能看出来,实在是太多冗余的代码了!!

方法三

“方法三” = “方法一” + “方法二”

不知道大家还有什么好的改变概率的方法,还请大佬们赐教 (●’◡’●)

完整的代码和图片素材下载,请点击这里【https://download.csdn.net/download/qq_36828433/10867217】


http://www.ppmy.cn/news/274579.html

相关文章

Gift 题解

题目描述 Input 输入的第一行为一个整数t。   接下来t行&#xff0c;每行包含九个自然数。 Output 输出t行   每行一个整数&#xff0c;表示2^a2^b2^c2^d2^e2^f2^g2^hi。 Sample Input 1 21 30 0 0 0 0 0 0 2147483647 Sample Output 3223322629 Data Constraint…

Automader 使用教程 - 01 你好,左右抽

Automader 项目地址&#xff1a;Gitee 码云 项目简介 Automader 项目最开始只是给我自己使用的 Python 小工具&#xff0c;但是想着为音 mad 社区作出一点自己的共享&#xff0c;因此就把它的源代码放在了码云上面。 这个项目受到了 Manim 的一些影响&#xff0c;再加上自己…

简易抽奖网页

简易抽奖网页需要完成以下几个功能&#xff1a; * 1.简单的网页界面设计 * 2.回车开始抽取再次回车暂停 * 3.三次抽取后结束 * 4.ESC键重新抽取 界面设计部分不赘述 实现思想&#xff08;JavaScripts部分&#xff09;&#xff1a; 1. 设计一个数组存放被抽取人员的…

CF550B Preparing Olympiad 题解

同我在洛谷的博客 洛谷题目传送门 与这道题相近的题目是&#xff1a;洛谷P2036 [COCI2008-2009#2] PERKET &#xff08;大家可以看一下这道题&#xff09; 题目大概就是&#xff1a;给定 n n n 个数&#xff0c;从中选出一些数&#xff0c;保证这些数之和在 [ l , r ] [l,…

ctfshow-菜狗杯-抽老婆

任意文件读取 抽老婆 打开首先发现是一个图片下载&#xff08;老婆们都很不错(&#xffe3;▽&#xffe3;)*&#xff09;&#xff0c;感觉也没什么其他的东西&#xff0c;先F12看一下代码&#xff0c;发现有一处标注&#xff0c;感觉跟任意文件下载有关&#xff1a; (一开…

Codeforces 期望概率dp 235B,351B,768D,50D,101D 题解

文章目录 235B Lets Play Osu!351B Jeff and Furik768D Jon and Orbs50D Bombing101D Castle 5道不错的概率dp. 235B Let’s Play Osu! 你 打 音 游 的 得 分 是 你 每 次 击 中 连 续 音 符 个 数 的 平 方 和 . 给 出 你 击 中 每 一 个 音 符 的 概 率 , 求 你 的 期 望 得 …

抽奖转盘HTML5

html代码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"renderer" content"webkit"><meta http-equiv"X-UA-Compatible" content"IEedge">&…

MarsNFT|来抽盲盒吗?停不下来的那种!

生活就像盲盒&#xff0c;你永远不知道抽中的会是什么。MarsNFT于10月9日再次携手宏宝斋带来西游72变盲盒。首次白龙马藏品一经发售就立马抢完&#xff0c;受到了众多粉丝的青睐。这次盲盒新玩法十分值得期待&#xff0c;所谓先到先得&#xff0c;数量有限请活动时间准时登陆官…