php大转盘程序,jQuery幸运大转盘_jQuery+PHP抽奖程序(下)
上一篇讲解了幸运大转盘前端,而本文继续讲下半部分:PHP控制抽奖几率并最终实现转盘抽奖。
下载资源
下载积分:
95
积分
PHP
首先,在ajax.php中创建一个奖项对应角度和中奖几率二维数组: $prize_arr = array(
'0' => array('id' => 1, 'min' => 1, 'max' => 29, 'prize' => '一等奖', 'v' => 1),
'1' => array('id' => 2, 'min' => 302, 'max' => 328, 'prize' => '二等奖', 'v' => 2),
'2' => array('id' => 3, 'min' => 242, 'max' => 268, 'prize' => '三等奖', 'v' => 5),
'3' => array('id' => 4, 'min' => 182, 'max' => 208, 'prize' => '四等奖', 'v' => 7),
'4' => array('id' => 5, 'min' => 122, 'max' => 148, 'prize' => '五等奖', 'v' => 10),
'5' => array('id' => 6, 'min' => 62, 'max' => 88, 'prize' => '六等奖', 'v' => 25),
'6' => array('id' => 7, 'min' => array(32, 92, 152, 212, 272, 332),
'max' => array(58, 118, 178, 238, 298, 358), 'prize' => '七等奖', 'v' => 50)
//min数组表示每个个奖项对应的最小角度 max表示最大角度
//prize表示奖项内容,v表示中奖几率(若数组中七个奖项的v的总和为100,如果v的值为1,则代表中奖几率为1%,依此类推)
);
中奖概率方法我们之前在jQuery砸金蛋_PHP砸金蛋讲过,代码如下 function getRand($proArr) {
$data = '';
$proSum = array_sum($proArr); //概率数组的总概率精度
foreach ($proArr as $k => $v) { //概率数组循环
$randNum = mt_rand(1, $proSum);
if ($randNum <= $v) {
$data = $k;
break;
} else {
$proSum -= $v;
}
}
unset($proArr);
return $data;
}
函数getRand()会根据数组中设置的几率计算出符合条件的id,我们可以接着调用getRand()。 foreach ($prize_arr as $v) {
$arr[$v['id']] = $v['v'];
}
$prize_id = getRand($arr); //根据概率获取奖项id
$res = $prize_arr[$prize_id - 1]; //中奖项
$min = $res['min'];
$max = $res['max'];
if ($res['id'] == 7) { //七等奖
$i = mt_rand(0, 5);
$data['angle'] = mt_rand($min[$i], $max[$i]);
} else {
$data['angle'] = mt_rand($min, $max); //随机生成一个角度
}
$data['prize'] = $res['prize'];
echo json_encode($data);
jQuery
接着点击”开始抽奖“按钮,便会向后台ajax.php请求并返回奖项信息,这时指针开始转动,指针最终停留位置是由ajax.php返回值angle 来决定的,这样我们就可以控制概率和前端指针转动停留位置。代码如下: $(function() {
$("#startbtn").click(function() {
lottery();
});
});
function lottery() {
$.ajax({
type: 'POST',
url: 'ajax.php',
dataType: 'json',
cache: false,
error: function() {
alert('Sorry,出错了!');
return false;
},
success: function(json) {
$("#startbtn").unbind('click').css("cursor", "default");
var angle = json.angle; //指针角度
var prize = json.prize; //中奖奖项标题
$("#startbtn").rotate({
duration: 3000,//转动时间 ms
angle: 0, //从0度开始
animateTo: 3600 + angle,//转动角度
easing: $.easing.easeOutSine, //easing扩展动画效果
callback: function() {
var resulte = confirm('恭喜您中得' + prize + '\n想要继续吗?');
if (resulte) { //若是点击确定,继续抽奖
lottery();
}
}
});
}
});
}
若您对转盘前端转动效果不明白,建议您先阅读幸运大转盘jQuery幸运大转盘_jQuery+PHP抽奖程序(上),动画效果easing可参考jquery.easing动画插件
php大转盘程序,jQuery幸运大转盘_jQuery+PHP抽奖程序(下)相关推荐
- jQuery幸运大转盘
jQuery幸运大转盘_jQuery+PHP抽奖程序的简单实现 在线实例 查看演示 完整代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
- 微信小程序项目实例——幸运大转盘
微信小程序项目实例--幸运大转盘 文章目录 微信小程序项目实例--幸运大转盘 一.项目展示 二.抽奖页 三.领奖页 文末:项目代码 项目代码见文字底部,点赞关注有惊喜 一.项目展示 幸运大转盘是一个简 ...
- jQuery幸运大转盘_jQuery+PHP抽奖程序
http://www.thinkphp.cn/code/1153.html 网上转盘抽奖程序大多是flash完成的,而本文使用jQuery和PHP来实现转盘抽奖程序. 若是想看更多js特效.网站源码. ...
- 幸运大转盘php逻辑判断,jQuery幸运大转盘_jQuery+PHP抽奖程序(上)
网上转盘抽奖程序大多是flash完成的,而本文使用jQuery和PHP来实现转盘抽奖程序,为了便于理解,我们分两部分来讲解,本文讲解第一部分,侧重使用jQuery实现转盘的转动效果.第二部分侧重使用P ...
- java抽奖程序头像_半小时撸一个抽奖程序
需求总是很紧急,昨天正在开会收到人力需求,有时间做个抽奖吗?(now 下午四点12,年会五点开始.)还没能等我拒绝,人事又补了一句做不出来我们就不抽奖了,我擦瞬间感觉要是搞不出来会被兄弟们捅死的节奏, ...
- html幸运大转盘,HTML5+Fontawesome 幸运大转盘
CSS 语言: CSSSCSS 确定 * { margin: 0; padding: 0; } body { background: #eaeaea; color: #fff; font-size: ...
- js 年会大屏_ECharts + Jquery 做大屏展示
var myOptions =[{ backgroundColor:'#020933', title: { top:20,//left: 190, text: '', //标题 subtext: '' ...
- html页面转盘如何实现,html5制作转盘的详解及实例
今天给大家带来的案列是html5转盘实例,可以直接拿来做抽奖程序,有需要的朋友可以拿去使用,下面是案列代码. html5制作转盘游戏 h1{ width: 100%; height: 3rem; li ...
- 项目经验:抽奖程序(Python)
每家互联网公司到年末都会有聚会,聚会少不了抽奖环节,如何公平.有趣的做好抽奖活动是年会开的好不好的重要评价指标,以下笔者从一个程序员角度,设计一款抽奖程序. 一.业务 参加抽奖的人员数据保存在一个cs ...
最新文章
- 蓝牙设备探测工具blueranger
- Html.ActionLink 几种重载方式说明及例子
- CV:深入浅出的讲解傅里叶变换(真正的通俗易懂)
- [LeetCode_5] Longest Palindromic Substring
- 如何把网上下载的前端页面在Spring Boot中跑起来(CSS,JavaScript,程序运行等路径设置)
- 专科转行学java_大专女生想转行做IT,应该先学哪一块?
- 算法:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。
- bzoj 1488: [HNOI2009]图的同构 (置换+dfs)
- hdu 3689 Infinite monkey theorem (KMP+DP)
- TP-LINK路由器手动设置网关、DNS、开启DHCP并指定地址池IP范围
- 最新幸运盒子幸运砸金蛋微信盲盒游戏源码
- 地图上如何量方位角_经纬度计算距离和方位角
- 计算机视觉可解释性——卷积神经网络中间层的可视化
- keil软件下载安装与新建工程
- Map Reduce 四大组件
- 嵌入式课程学习 嵌入式硬件工程师需要学习哪些内容?
- 关于splay的一些说明
- scala中的sealed
- 游戏显示计算机空间不足,打游戏显示“显存不足”怎么解决?图解显存不足的方法步骤...
- Spark 算子使用案例 -- 统计广告点击量 Top3
热门文章
- spreadsheetControl
- JAVA基础 之 System
- VUE通过自定义指令,只允许输入大写英文以及数字
- 计算机常用屏幕分辨率,pc端常用电脑屏幕 ((响应式PC端媒体查询)电脑屏幕分辨率尺寸大全)...
- Android Bitmap 缩放
- 苹果电脑:快捷键使用
- Lua Busted 单元测试简介(Windows 环境)
- Python 爬取微博、百度实时热点
- 有一页式系统,其页表存放在内存中. (1)如果对内存的一次存取需要1.5微秒,问实现一次页面访问的存取时间是多少? (2)如果系统增加有快表,平均命中率为85%,.....
- U盘在电脑上不显示怎么办?