zoukankan      html  css  js  c++  java
  • 一个好玩的jq+php实现转盘抽奖程序

    <!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>
    <style type="text/css">
    *{ margin:0; padding:0;}
    img { border:none;}
    .w1000{ 1000px; margin:0 auto;}
    .w1000 img, .gl img{ display:block;}
    /*中奖名单*/
    button{padding:2px 8px;}
    .action{text-align:center; padding:10px; border-bottom:dashed 1px #ccc;}
    #rightDemo{257px; padding:10px;position:absolute; left:95px; top:90px;}
    #rightDemo li{ color:#825a00; font-size:13px;257px;}
    ul{ height:335px; overflow:hidden;}
    ul li{line-height:30px; height:30px; overflow:hidden; list-style:none; padding:0; margin:0;}
    /*页面样式*/
    .box_11{ background:url(http://www.sansejin.com.cn/themes/laboci_2012/images/sales201308/box_r11_bg.jpg) no-repeat center center;}
    .gl{ background:#F00F4B;}
    /*转盘样式*/
    #main{1000px; min-height:600px; margin:0 auto;}
    .demo{1000px; height:527px; position:relative; margin:0 auto; zoom:1;}
    #disk{1000px; height:527px; background:url(http://www.sansejin.com.cn/themes/laboci_2012/images/sales201308/disk.jpg) no-repeat}
    #start{111px; height:212px; position:absolute; top:149px; left:605px;}
    #start img{cursor:pointer}
    /*转盘样式*/
    
    </style>
    <script type="text/javascript" src="http://www.helloweba.com/demo/js/jquery.js"></script>
    <script type="text/javascript" src="http://www.helloweba.com/demo/lottery/jQueryRotate.2.2.js"></script>
    <script type="text/javascript" src="http://www.helloweba.com/demo/lottery/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(){ 
                        alert('恭喜你,抽中'+'"'+p+'"!'); 
                        $("#startbtn").rotate({angle:0}); $("#startbtn").click(function(){ lottery(); }).css("cursor","pointer");
                        
                    } 
                }); 
            } 
        }); 
    }
    </script>
    </head>
    
    <body>
    
    <div class="gl">
    <!--抽奖区域[-->
    <div class="gl">
    <div class="box_11">
    <!--抽奖转盘[-->
    <div class="demo">
         <div id="disk"></div>
         <div id="start"><img src="http://www.sansejin.com.cn/themes/laboci_2012/images/sales201308/start.png" alt="抽奖" id="startbtn"/></div>
         <!--中奖名单[-->
         <div id="rightDemo">
                <ul id="rightBox">
                    <li>手机尾号为***7884的用户抽中100元现金券大礼包</li>
                    <li>手机尾号为***7884的用户抽中100元现金券大礼包</li>
                <li>手机尾号为***0573的用户抽中大奖iphone5智能手机</li>
    <li>手机尾号为***3200的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***4520的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***2341的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***9687的用户抽中3折抢购齿白健精品套装</li>
    <li>手机尾号为***0931的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***1747的用户抽中3折抢购红酒木瓜丰胸靓汤</li>
    <li>手机尾号为***3748的用户抽中100元现金券大礼包</li>
    <li>手机尾号为***0125的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***0063的用户抽中3折抢购魔泥金装精品套装</li>
    <li>手机尾号为***7884的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***5892的用户抽中100元现金券</li>
    <li>手机尾号为***7884的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***7224的用户抽中3折抢购祛疤精华凝露组合二代</li>
    <li>手机尾号为***7910的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***2832的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***3488的用户抽中3折抢购红酒木瓜丰胸靓汤</li>
    <li>手机尾号为***6693的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***4787的用户抽中3折抢购齿白健精品套装</li>
    <li>手机尾号为***8547的用户抽中3折抢购祛疤精华凝露组合二代</li>
    <li>手机尾号为***7884的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***2670的用户抽中100元现金券</li>
    <li>手机尾号为***0811的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***5120的用户抽中3折抢购魔泥金装精品套装</li>
    <li>手机尾号为***9229的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***4321的用户抽中大奖ipad mini平板电脑</li>
    <li>手机尾号为***6693的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***8777的用户抽中100元现金券</li>
    <li>手机尾号为***9968的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***4699的用户抽中3折抢购祛疤精华凝露组合二代</li>
    <li>手机尾号为***8511的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***6665的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***5552的用户抽中3折抢购红酒木瓜丰胸靓汤</li>
    <li>手机尾号为***4321的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***1399的用户抽中100元现金券大礼包</li>
    <li>手机尾号为***8455的用户抽中3折抢购魔泥金装精品套装</li>
    <li>手机尾号为***8822的用户抽中300元现金券大礼包</li>
    <li>手机尾号为***8224的用户抽中3折抢购红酒木瓜丰胸靓汤</li>
    <li>手机尾号为***5023的用户抽中300元现金券大礼包</li>
                </ul>
         </div>
         <!--]end 中奖名单-->
    </div>
    <!--]end 抽奖转盘-->
    </div>
    </div>
    
    <script type="text/javascript">
    function maquer(){
        setInterval(function(){
            $('#rightBox li:first').animate({'height':'0','opacity': '0'}, 'slow', function() {
              $(this).removeAttr('style').insertAfter('#rightBox li:last');
            });
        },1000);
        $(this).attr('disabled',true);
        return;
    }
    maquer();
    </script>
    </body>
    </html>
    <?php
    
    include("config.php");//链接数据库
    
    
    $prize_arr = array( 
        '0' => array('id'=>1,'min'=>55,'max'=>80,'prize'=>'3折抢购红酒木瓜丰胸靓汤 ','v'=>10),//弧度:55°-80°范围是:“3折抢购红酒木瓜丰胸靓汤”奖, v=10是中奖率是10%
        '1' => array('id'=>2,'min'=>10,'max'=>35,'prize'=>'3折抢购自由呼吸魔泥金装精品套装','v'=>10), 
        '2' => array('id'=>3,'min'=>320,'max'=>355,'prize'=>'100元现金券','v'=>20), 
        '3' => array('id'=>4,'min'=>230,'max'=>265,'prize'=>'3折抢购218齿白健套装','v'=>10), 
        '4' => array('id'=>5,'min'=>185,'max'=>215,'prize'=>'3折抢购498元祛疤精华','v'=>10), 
        '5' => array('id'=>6,'min'=>140,'max'=>170,'prize'=>'300元现金券大礼包','v'=>40)
    );
    
    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']; 
    $result['angle'] = mt_rand($min,$max); //随机生成一个角度
    $result['prize'] = $res['prize']; 
    echo json_encode($result); 
    ?>
  • 相关阅读:
    基于UDP的聊天室一例
    用原始套接字编程实现linux中的 ping 命令
    UNIX域流式套接字一例
    基于TCP的多进程echo服务器
    网络数据包检测抓包一例
    Java中static、final用法小结
    TCP/IP 组播的发送和接收
    Java数据库连接字符串
    对java中的访问限定符的理解1
    UNIX域用户数据报套接字一例
  • 原文地址:https://www.cnblogs.com/jthb/p/3494443.html
Copyright © 2011-2022 走看看