前台页面:

<!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{ width: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{width:257px; padding:10px;position:absolute; left:95px; top:90px;}
#rightDemo li{ color:#825a00; font-size:13px;width: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{width:1000px; min-height:600px; margin:0 auto;}
.demo{width:1000px; height:527px; position:relative; margin:0 auto; zoom:1;}
#disk{width:1000px; height:527px; background:url(http://www.sansejin.com.cn/themes/laboci_2012/images/sales201308/disk.jpg) no-repeat}
#start{width: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>

data.php

<?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);
?>

config.php(其实也可以不链接数据库,把data.php里面的链接数据库注释)

<?php
$q=mysql_connect("localhost","root","");
if(!$q){
die('亲,链接不到数据库哦!'.mysql_error());
}
mysql_query("set name utf8"); //以utf8读取数据库
mysql_select_db("test",$q); //数据库
?>

原文:

http://www.helloweba.com/view-blog-216.html

一个好玩的jq+php实现转盘抽奖程序的更多相关文章

  1. 用jQuery和PHP来实现转盘抽奖程序

    准备工作 首先要准备素材,抽奖的界面用到两张图片,圆盘图片和指针图片,实际应用中可以根据不同的需求制作不同的圆盘图片. 接着制作html页面,实例中我们在body中加入如下代码: <div cl ...

  2. 幸运大转盘-jQuery+PHP实现的抽奖程序

    目前好多网站上应用的转盘抽奖程序大多是基于flash的,而本文结合实例将使用jQuery和PHP来实现转盘抽奖程序,为了便于理解,作者分两部分来讲解,本文讲解第一部分,侧重使用jQuery实现转盘的转 ...

  3. jQuery幸运大转盘_jQuery+PHP抽奖程序

    http://www.thinkphp.cn/code/1153.html 网上转盘抽奖程序大多是flash完成的,而本文使用jQuery和PHP来实现转盘抽奖程序. 若是想看更多js特效.网站源码. ...

  4. 简单JS旋转实现转盘抽奖效果

    闲来没事,做了一个模拟转盘抽奖的HTML&JS的效果: 可以在设置的时候,选择几个区域,并且可以填写指针将要停止的区域 比如,我选择了"区域2",结果就是这样 具体可以见下 ...

  5. 简单的转盘抽奖——CSS动画优化

    前言 前两天去一家公司面试,被问到一些小游戏的东西.面试官提到了刷红包还有抽奖这些怎么实现,当时简单说了下思路,回来之后想想还是说的太轻描淡写了,干说不做就是耍流氓,所以就做了一个(Demo & ...

  6. HTML5 Canvas绘制转盘抽奖

    新项目:完整的Canvas转盘抽奖代码 https://github.com/givebest/GB-canvas-turntable 演示 http://blog.givebest.cn/GB-ca ...

  7. javascript 转盘抽奖代码和计数器代码

    要介绍了javascript圆盘抽奖程序实现原理和完整代码例子,需要的朋友可以参考下  看到网页上有不少大转盘抽奖的应用,心血来潮也想弄个.于是找了点资料自己研究...  效果预览: 一.模拟抽奖的实 ...

  8. js转盘抽奖

    这个是很简易的转盘,只用了html,css,js 通过css产生一个转盘上的指针,用js动态改变css中的transparent改变指针的角度.再添加一个背景图片类似于奖项的转盘 <!DOCTY ...

  9. canvas转盘抽奖

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" ...

随机推荐

  1. 用java pyhont通过HTTP协议传输文件流

    // 代码网上抄的 忘记链接了 抱歉哈package upload; import java.io.BufferedReader; import java.io.DataOutputStream; i ...

  2. pyqt5通过文本对话框打开文件

    点击按钮,打开文本对话框,找一人文件,打开并显示内容 QFIleDialog                                                              ...

  3. 为什么ELF文件的加载地址是0x8048000

    在一个进程的虚拟地址空间中,ELF文件是从0x8048000这个地址开始加载的,为什么会是这个地址? 回答:用命令ld --verbose可以看到0x08048000,ld的默认脚本用这个地址作为EL ...

  4. KEIL UV3中光标不对齐解决

    Keil uVision3与uV2相比增加了对更多型号单片机的支持,另外还对一些的方面进行了优化.不过它却优化出一个让人头疼的问题,那就是光标位置显示不正确!这一问题给程序的编写带来了许多不便.不过不 ...

  5. Android应用程序插件化研究之AssertManager

    最近在研究Android应用的插件化开发,看了好几个相关的开源项目.插件化都是在解决以下几个问题: 如何把插件apk中的代码和资源加载到当前虚拟机. 如何把插件apk中的四大组件注册到进程中. 如何防 ...

  6. 学习javascript基础知识系列第二节 - this用法

    通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...

  7. javascript学习笔记——chrome等提示找不到“getElementsByTagName”的一种解决方法

    最近学习是写了一个小网页,前台有个下拉框是通过后天的xml配置的,在写好代码后使用发现在IE9以及之前的IE浏览器都可以正常获取,但是IE10,chrome和firefox都会在获取一个标签时报get ...

  8. 开始使用Logstash

    开始使用Logstash 本节将指导处理安装Logstash 和确认一切是运行正常的, 后来的章节处理增加负载的配置来处理选择的使用案例. 这个章节包含下面的主题: Installing Logsta ...

  9. 关于selenium中的sendKeys()隔几秒发送一个字符

    看一下你的IEDriverServer.exe是不是64位的,我也遇到了这样的问题,换成32位的IEDriverServer.exe,瞬间速度快了

  10. 改进的newlisp编译脚本,只需要配置

    前面有一篇Say bye to CMake and Makefile我开始用自己编写的newlisp脚本替代CMake,今天对前面的进行改进. 改进部分是: 1. newlisp armory模块的引 ...