data.php文件
//定义抽奖项
$prize_arr=array(
'0' => array('id'=>1,'min'=>137,'max'=>178,'prize'=>'一等奖','v'=>9984),
'1' => array('id'=>2,'min'=>227,'max'=>268,'prize'=>'二等奖','v'=>5),
'2' => array('id'=>3,'min'=>1,'max'=>44,'prize'=>'三等奖','v'=>10),
'3' => array('id'=>4,'min'=>array(47,92,182,272,317),'max'=>array(88,133,223,313,358),'prize'=>'再接再励,下次可能中奖哦!','v'=>1),
);
foreach($prize_arr as $k=>$v){
$varr[$v['id']] = $v['v'];
}
//根据概率获取中奖id
$rid = get_rand($varr);
//中奖项
$rs = $prize_arr[$rid-1];
$min = $rs['min'];
$max = $rs['max'];
//判断¥rs的id是否是3,(判断min和max是否是数组)
if($rs['id']=='4'){
$i = mt_rand(0,4);
$result['angle'] = mt_rand($min[$i],$max[$i]);
}else{
$result['angle'] = mt_rand($min,$max);
}
$result['prize'] = iconv('gb2312','utf-8',$rs['prize']);
$result['rid']=$rs['id'];
echo json_encode($result);
//概率算法
function get_rand($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;
}
?>index.hrml
抽奖插件前端制作
*{margin:0; padding:0; font-size:14px;}
body{text-align: center; background-color: #1664ad;}
#main_bg{border:0px solid black;width:510px; margin:0 auto;}
#rotate-bg{position:relative; background:url(images/rotate_bg.png) no-repeat; height:510px; width:510px; margin:0 auto;}
#rotate_static{position:absolute; top:148px; left:148px; cursor:pointer;}
$(function(){
$("#imgbutton").click(function(){
sub();
});
});
function sub(){
$.ajax({
type:'POST',
url:'check.php',
dataType:'json',
cache:false,
error:function(){
alert('出错了');
return false;
},
success:function(rs){
$("#imgbutton").unbind('click').css('cursor','default');
var a = rs.angle;//角度
var p = rs.prize; //奖项
var rid = rs.rid;
$("#imgbutton").rotate({
duration:5000,//转动时间
angle:0,
animateTo:1800+a, //转动角度
easing: $.easing.easeOutSine,
callback: function(){
if(rid != 4){
var con = confirm('恭喜你,中得'+p+'请在跳转后填写个人信息,以便于我们给你发送奖品!');
if(con){
window.location('');
}else{
return false;
}
}else{
var con = confirm('很遗憾,下次有可能中奖哦!');
if(con){
sub();
}else{
return false;
}
}
}
});
}
});
}