jQuery+PHP实现的大转盘抽奖程序

JQuery + PHP实现大转盘抽奖

1、HTML文件如下:

<script type="text/javascript" src="jquery-1.7.2.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").rotate({
		bind:{
			click:function(){
				var a = Math.floor(Math.random() * 360);
				 $(this).rotate({
					 	duration:3000,
					 	angle: 0, 
            			animateTo:1440+a,
						easing: $.easing.easeOutSine,
						callback: function(){
							alert('中奖了!'+a);
							
						}
				 });
			}
		}
	});
});

2、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) 
); 
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); 

本实例下载:https://www.sucaipro.com/sucai/226.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的健身转盘抽奖系统的示例代码: HTML部分: ``` <div id="roulette"> <div class="roulette-container"> <div class="roulette-item item-1"><span>奖项1</span></div> <div class="roulette-item item-2"><span>奖项2</span></div> <div class="roulette-item item-3"><span>奖项3</span></div> <div class="roulette-item item-4"><span>奖项4</span></div> <div class="roulette-item item-5"><span>奖项5</span></div> <div class="roulette-item item-6"><span>奖项6</span></div> <div class="roulette-item item-7"><span>奖项7</span></div> <div class="roulette-item item-8"><span>奖项8</span></div> </div> <button id="start">开始抽奖</button> </div> ``` CSS部分: ``` #roulette { text-align: center; } .roulette-container { margin: 0 auto; position: relative; width: 300px; height: 300px; } .roulette-item { position: absolute; width: 100%; height: 100%; border-radius: 50%; box-shadow: 0 0 5px rgba(0, 0, 0, 0.5); transform-origin: center center; display: flex; justify-content: center; align-items: center; } .item-1 { background-color: #FF0000; transform: rotate(0deg); } .item-2 { background-color: #FFA500; transform: rotate(45deg); } .item-3 { background-color: #FFFF00; transform: rotate(90deg); } .item-4 { background-color: #008000; transform: rotate(135deg); } .item-5 { background-color: #0000FF; transform: rotate(180deg); } .item-6 { background-color: #4B0082; transform: rotate(225deg); } .item-7 { background-color: #EE82EE; transform: rotate(270deg); } .item-8 { background-color: #FF1493; transform: rotate(315deg); } #start { margin-top: 20px; padding: 10px 20px; background-color: #008CBA; color: #FFFFFF; border: none; border-radius: 5px; cursor: pointer; } ``` JavaScript部分: ``` $(function() { var $roulette = $('#roulette'); var $startBtn = $('#start'); var $rouletteContainer = $('.roulette-container'); var $rouletteItems = $('.roulette-item'); var itemLength = $rouletteItems.length; var active = false; $startBtn.on('click', function() { if (active) { return; } active = true; var item = Math.floor(Math.random() * itemLength); var deg = item * (360 / itemLength) + (360 / itemLength) / 2; $rouletteContainer.css({ transform: 'rotate(' + deg + 'deg)', transition: 'all 5s cubic-bezier(0.25, 0.1, 0.25, 1)' }); setTimeout(function() { alert('恭喜您抽中了' + $rouletteItems.eq(item).text() + '!'); $rouletteContainer.css({ transform: 'rotate(0deg)', transition: 'none' }); active = false; }, 5500); }); }); ``` 这个示例代码使用了jQuery库来简化一些操作。当点击“开始抽奖”按钮时,它会随机选择一个奖项,并将转盘旋转到该奖项。等待5秒钟后,它会弹出一个提示框,告诉用户他们抽中了哪个奖项。在5秒钟的过渡期间,该按钮将被禁用,以防止用户再次点击并中断转盘旋转。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值