zoukankan      html  css  js  c++  java
  • php 大转盘抽奖

    包在文件中 lottery.zip

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="keywords" content="html5,本地存储" />
    <meta name="description" content="Helloweba演示平台,演示XHTML、CSS、jquery、PHP案例和示例" />
    <title>幸运大转盘-jQuery+PHP实现的抽奖程序</title>
    <link rel="stylesheet" type="text/css" href="../css/main.css" />
    <style type="text/css">
    .demo{417px; height:417px; position:relative; margin:50px auto}
    #disk{417px; height:417px; background:url(disk.jpg) no-repeat}
    #start{163px; height:320px; position:absolute; top:46px; left:130px;}
    #start img{cursor:pointer}
    </style>
    <script type="text/javascript" src="http://xhdoctor.ci.com/static/js/jquery-3.1.0.min.js"></script>
    <script type="text/javascript" src="jQueryRotate.2.2.js"></script>
    <script type="text/javascript" src="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+' 还要再来一次吗?');
    if(con){
    lottery();
    }else{
    return false;
    }
    }
    });
    }
    });
    }
    </script>
    </head>

    <body>
    <div id="main">
    <div class="msg"></div>
    <div class="demo">
    <div id="disk"></div>
    <div id="start"><img src="start.png" id="startbtn"></div>
    </div>
    <div class="ad_demo"><script src="/js/ad_js/ad_demo.js" type="text/javascript"></script></div><br/>
    </div>

    <!--<p id="stat"><script type="text/javascript" src="http://js.tongji.linezing.com/1870888/tongji.js"></script></p>-->
    </body>
    </html>

    <?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)
    );
    // 1 2 5 7 10 25 50
    function getRand($proArr) {
    $result = '';
    //概率数组的总概率精度 v值的和
    $proSum = array_sum($proArr);
    //概率数组循环
    foreach ($proArr as $key => $proCur) {
    //1 - 100 之间的随机数
    $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);

  • 相关阅读:
    程序员丨学习编程需要攻克这 8 个壁垒,解决后编程能力显著提升!
    编程不难学,方法最重要!学习编程语言最好的方法是什么?
    Navicat for MySQL怎么往表中填数据
    WinForm开发(1)——DataGridView控件(1)——C# DataGridView控件用法介绍
    【C#】图解如何添加引用using MySql.Data.MySqlClient;
    源代码管理工具(2)——SVN(2)——第一次用SVN遇到的问题
    源代码管理工具(1)——SVN(1)——SVN 的使用新手指南,具体到步骤详细介绍----TortoiseSVN
    C#取整函数Math.Round、Math.Ceiling和Math.Floor
    服务器(2)——IIS(2)——IIS Express(1)——IIS跟IIS Express之间的区别和关系
    C# 连接 Oracle 的几种方式
  • 原文地址:https://www.cnblogs.com/lijiageng/p/5752192.html
Copyright © 2011-2022 走看看