小雨在线网站自营销研究之幸运大转盘-jQuery+PHP实现的抽奖程序-完善中 1. [代码] [PHP]代码 !DOCTYPE htmlhtml lang="zh-CN"head meta charset="utf-8" meta http-equiv="X-UA-Compatible" content="IE=edge" meta name="vie
1. [代码][PHP]代码
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>小雨在线网站自营销研究</title> <link rel="stylesheet" type="text/css" href="css/style.css"/> <!--<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>--> <script src="//cdn.bootcss.com/jquery/3.0.0/jquery.min.js"></script> <script type="text/javascript" src="js/jQueryRotate.2.2.js"></script> <script type="text/javascript" src="js/jquery.easing.min.js"></script> <script type="text/javascript"> $(function () { $("#startbtn").click(function () { lottery(); }); }); function lottery() { $.ajax({ type: 'POST', url: 'data.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 { return false; } } }); } }); } </script> </head> <body class="keBody"> <h1 class="keTitle">小雨在线网站自营销研究</h1> <div class="kePublic"> <!--效果html开始--> <div class="demo"> <div id="disk"></div> <div id="start"><img src="images/start.png" id="startbtn"></div> </div> <!--效果html结束--> </div> </body> </html> -----------data.php---------------------------------- <?php /** * Created by 小雨在线 * User: 飛天 * Date: 2016/6/22 0022 * Time: 下午 4:27 */ $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) ); 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; } 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);