网站开发栏目,介绍前端、后台、服务器、数据库、建站工具等实用网站开发教程。
幸运大转盘抽奖活动是很多公司年会上常见的抽奖活动,选择这样的活动可以增进公司员工之间的感情与交流,同时还能够增加公司的良好氛围。所以说你会抽奖的好处还是蛮多的,可以选择不同的抽奖活动,甚至可以运用一些线上抽奖活动,这样更方便操作,而且还节省时间,需要花费的精力会更少,所以相对来说会非常简单。今天,帝国模板之家小编就大家分享一款PHP仿京东幸运大转盘抽奖代码。页面效果图如下:
前端代码:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="content-type" content="text/html" charset="UTF-8" />
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="Author" content="Amee" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
<link rel="stylesheet" href="./css/reset.css">
<link rel="stylesheet" href="./css/style.css">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>幸运大转盘</title>
<script type="text/javascript">
! function (t) {
var e = 750,
i = t.document,
n = i.documentElement,
o = "orientationchange" in t ? "orientationchange" : "resize",
a = function t() {
var i = n.getBoundingClientRect().width;
return n.style.fontSize = 5 * Math.max(Math.min(i / e * 20, 11.2), 8.55) + "px", t
}();
n.setAttribute("data-dpr", t.navigator.appVersion.match(/iphone/gi) ? t.devicePixelRatio : 1),
/iP(hone|od|ad)/.test(
t.navigator.userAgent) && (i.documentElement.classList.add("ios"), parseInt(t.navigator.appVersion
.match(
/OS (\d+)_(\d+)_?(\d+)?/)[1], 10) >= 8 && i.documentElement.classList.add("hairline")), i.addEventListener &&
(t.addEventListener(
o, a, !1), i.addEventListener("DOMContentLoaded", a, !1))
}(window);
</script>
</head>
<body>
<div class="demo">
<div class="pan">
<div id="disk"></div>
<div id="start">
<img id="startbtn" src="./image/point.png" width="100%">
</div>
</div>
<div class="rules">
<div class="tit">
抽奖规则
</div>
<p> 1、由于系统延迟如未获得抽奖机会请耐心等待</p>
<p>2、中奖结果以系统弹出的对话框信息为准</p>
<p>3、下单时间支付时间以京东充值系统时间为准</p>
<p> 4、活动当后一天建议23点30分前参与抽奖避免因充值成
功而抽奖活动已结束无法参加活动。</p>
</div>
</div>
<script type="text/javascript" src="./js/jquery-1.8.3.js"></script>
<script type="text/javascript" src="./js/jQueryRotate.2.2.js"></script>
<script type="text/javascript">
$(function () {
$("#startbtn").click(function () {
lottery();
});
});
function lottery() {
$.ajax({
type: 'POST',
url: 'ajax.php',
dataType: 'json',
cache: false,
error: function () {
alert('出错了!');
return false;
},
success: function (json) {
$("#startbtn").unbind('click').css("cursor", "default");
var a = json.angle; //角度
var p = json.prize; //奖项
$("#startbtn").rotate({
duration: 3000, //转动时间
angle: 0,
animateTo: 1800 + a, //转动角度
easing: $.easing.easeOutSine,
callback: function () {
var con = confirm('恭喜你,中得' + p + '\n还要再来一次吗?');
if (con) {
lottery();
} else {
//再次绑定click事件
$("#startbtn").css("cursor", "pointer").on("click", function () {
lottery();
});
return false;
}
}
});
}
});
}
</script>
</body>
</html>
ajax.php代码:
<?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)
);
//抽奖开始
foreach ($prize_arr as $key => $val) {
$arr[$val['id']] = $val['v'];
}
$rid = getRand($arr); //根据概率获取奖项id
$res = $prize_arr[$rid - 1]; //中奖项
$min = $res['min'];
$max = $res['max'];
if ($res['id'] == 7) { //七等奖
$i = mt_rand(0, 5);
$result['angle'] = mt_rand($min[$i], $max[$i]);
} else {
$result['angle'] = mt_rand($min, $max); //随机生成一个角度
}
$result['prize'] = $res['prize'];
echo json_encode($result);
/**
* 根据概率获取奖项
* @param unknown $proArr
* @return Ambigous <string, unknown>
*/
function getRand($proArr) {
$result = '';
//概率数组的总概率精度
$proSum = array_sum($proArr);
//概率数组循环
foreach ($proArr as $key => $proCur) {
$randNum = mt_rand(1, $proSum);
if ($randNum <= $proCur) {
$result = $key;
break;
} else {
$proSum -= $proCur;
}
}
unset($proArr);
return $result;
}
ok,大家赶紧测试一下吧。
转载请注明来源:PHP仿京东幸运大转盘抽奖程序代码
本文永久链接地址:https://www.moyouyouw.cn/code/426.html
郑重声明:本站所有主题/文章除标明原创外,均来自网络转载,版权归原作者所有,如果有侵犯到您的权益,请联系本站删除,谢谢!我们不承担任何技术及版权问题,且不对任何资源负法律责任。
上一篇
下一篇
售价: 399 7 ℃ 0 评论
售价: 399 7 ℃ 0 评论
售价: 399 7 ℃ 0 评论
已有 位小伙伴发表了看法
欢迎 你 发表评论