基于JQuery+PHP编写砸金蛋中奖程序_php实例

首先给大家展示效果图:

查看演示 下载源码

准备工作

我们需要准备道具(素材),即相关图片,包括金蛋图片、蛋砸碎后的图片、砸碎后的碎花图片、以及锤子图片。

HTML

我们页面上要展现的是一个砸金蛋的台子,台上放了编号为1,2,3的三个金蛋,以及一把锤子。我们构建以下html代码:

<div class="egg">
 <ul class="eggList">
 <p class="hammer" id="hammer">锤子</p>
 <p class="resultTip" id="resultTip"><b id="result"></b></p>
 <li><span>1</span><sup></sup></li>
 <li><span>2</span><sup></sup></li>
 <li><span>3</span><sup></sup></li>
 </ul>
</div> 

上述代码中,.hammer放置锤子,.resultTip用于砸蛋后显示的结果,即有没有中奖,三个li分别放置3个金蛋,我们用CSS来装饰下效果。

CSS

.egg{width:660px; height:400px; margin:50px auto 20px auto;}
.egg ul li{z-index:999;}
.eggList{padding-top:110px;position:relative;width:660px;}
.eggList li{float:left;background:url(images/egg_1.png) no-repeat bottom;width:158px;
height:187px;cursor:pointer;position:relative;margin-left:35px;}
.eggList li span{position:absolute; width:30px; height:60px; left:68px; top:64px; color:#ff0;
 font-size:42px; font-weight:bold}
.eggList li.curr{background:url(images/egg_2.png) no-repeat bottom;cursor:default;z-index:300;}
.eggList li.curr sup{position:absolute;background:url(images/img-4.png) no-repeat;width:232px;
height:181px;top:-36px;left:-34px;z-index:800;}
.hammer{background:url(images/img-6.png) no-repeat;width:74px;height:87px;position:absolute;
text-indent:-9999px;z-index:150;left:168px;top:100px;}
.resultTip{position:absolute; background:#ffc ;width:148px;padding:6px;z-index:500;top:200px;
left:10px; color:#f60; text-align:center;overflow:hidden;display:none;z-index:500;}
.resultTip b{font-size:14px;line-height:24px;}

按照上面的代码我们可以在页面中看到一个完整的砸金蛋场景,注意我们使用了png图片,如果你的客户仍在使用ie6的话,你可能需要对png图片的透明做处理,本文不做处理。

jQuery

接下来,我们要用jQuery代码来实现砸金蛋、碎蛋、展示中奖结果的整个过程。当然,老规矩,对于才用jQuery实现的实例程序,你必须先载入jQuery库文件。

首先,当鼠标滑向金蛋时,用于砸金蛋的锤子会仅靠金蛋右上方,可以使用position()来定位。

$(".eggList li").hover(function() {
 var posL = $(this).position().left + $(this).width();
 $("#hammer").show().css('left', posL);
}) 

然后,点击金蛋,即挥动锤子砸向金蛋的过程。我们在click中先把金蛋中的编号数字隐藏,然后调用自定义函数eggClick()。

$(".eggList li").click(function() {
 $(this).children("span").hide();
 eggClick($(this));
}); 

最后,在自定义函数eggClick()中,我们使用jQuery的$.getJSON方法向后台data.php发送一个ajax请求,后台php程序会处理奖项分配并把中奖结果返回。我们使用animate()来实现砸锤子的动画,通过改变锤子的top和left位子来实现简单的动画效果,锤子砸下去后,金蛋样式变为.curr,同时金花四溅,然后中奖结果.resultTip展示,有没有中奖要看你的运气和后台奖项设置的中奖几率了。来看砸金蛋函数eggClick()的代码:

function eggClick(obj) {
 var _this = obj;
 $.getJSON("data.php",function(res){//ajax请求
 _this.unbind('click'); //解除click
 $(".hammer").css({"top":_this.position().top-55,"left":_this.position().left+185});
 $(".hammer").animate({//锤子动画
 "top":_this.position().top-25,
 "left":_this.position().left+125
 },30,function(){
 _this.addClass("curr"); //蛋碎效果
 _this.find("sup").show(); //金花四溅
 $(".hammer").hide();//隐藏锤子
 $('.resultTip').css({display:'block',top:'100px',left:_this.position().
 left+45,opacity:0})
 .animate({top: '50px',opacity:1},300,function(){//中奖结果动画
  if(res.msg==1){//返回结果
  $("#result").html("恭喜,您中得"+res.prize+"!");
  }else{
  $("#result").html("很遗憾,您没能中奖!");
  }
 });
 }
 );
 });
} 

为了将砸金蛋程序更真实的结合到你的网站中,你可以在砸蛋前验证会员身份,限制砸蛋次数、砸蛋中奖后留下联系方式等等措施,具体看网站需求了。

PHP

data.php处理前端发送的ajax请求,我们才用概率算法,根据设置好的中奖概率,将中奖结果以json的格式输出。关于概率计算的例子可以参照:PHP+jQuery实现翻板抽奖

$prize_arr = array(
 '0' => array('id'=>1,'prize'=>'平板电脑','v'=>3),
 '1' => array('id'=>2,'prize'=>'数码相机','v'=>5),
 '2' => array('id'=>3,'prize'=>'音箱设备','v'=>10),
 '3' => array('id'=>4,'prize'=>'4G优盘','v'=>12),
 '4' => array('id'=>5,'prize'=>'Q币10元','v'=>20),
 '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50),
);
foreach ($prize_arr as $key => $val) {
 $arr[$val['id']] = $val['v'];
}
$rid = getRand($arr); //根据概率获取奖项id
$res['msg'] = ($rid==6)?0:1; //如果为0则没中
$res['prize'] = $prize_arr[$rid-1]['prize']; //中奖项
echo json_encode($res);
//计算概率
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;
}

通过设置概率,我们可以看出,砸中平板电脑的几率占3%,砸不中的几率占50%,点击演示demo来试试你的运气吧。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索jquery
, php
, 中奖
砸金蛋
砸金蛋中奖概率设置、砸金蛋中奖音效、网上砸金蛋中奖金、jquery砸金蛋效果、jquery砸金蛋特效,以便于您获取更多的相关知识。

时间: 2024-09-23 19:00:52

基于JQuery+PHP编写砸金蛋中奖程序_php实例的相关文章

砸金蛋:jQuery+PHP实现的砸金蛋中奖程序

原文 砸金蛋:jQuery+PHP实现的砸金蛋中奖程序        砸金蛋被广泛应用于庆典活动.商家促销.电视娱乐等场合,它的趣味.悬念能迅速活跃现场气氛.同样,我们也可以将砸金蛋应用到WEB网站上,用于开展线上活动.本文将使用jQuery与PHP讲解如何实现一个WEB砸金蛋程序.                                     查看演示 下载源码                         准备 我们需要准备道具(素材),即相关图片,包括金蛋图片.蛋砸碎后的图片.

基于PHP的简单采集数据入库程序_php实例

说到采集,无非就是远程获取信息->提取所需内容->分类存储->读取->展示 也算是简单"小偷程序"的加强版吧 下面是对应核心代码(别拿去做坏事哦^_^) 所要采集的内容是某游戏网站上的公告,如下图: 可先利用file_get_contents和简单正则获取基本页面信息 整理下基本信息,采集入库: <?php include_once("conn.php"); if($_GET['id']<=8&&$_GET['id

基于jquery插件编写countdown计时器_jquery

废话不多说,直接上代码: 先展示一下插件调用方式:  1. 需要先加载countdown插件对应的css文件,也就几行代码而已,可以不用引入,自己手写一样啦  <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <title>jquery countdown倒计时

php基于jquery的ajax技术传递json数据简单实例_php技巧

本文实例讲述了php基于jquery的ajax技术传递json数据简单实现方法.分享给大家供大家参考,具体如下: html页面: <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <script type="text/javascript" src="jquery-1.8.2.mi

简单的用PHP编写的导航条程序_php基础

//简单的用PHP编写的导航条程序  <?php //导航条配置说明:默认显示的是目录名 //如果不愿意使用目录名,请去掉下面一行注释,并修改数组元素 $label= array("目录1"=>"导航名1","目录2"=>"导航名2","目录3"=>"导航名3"); $ur1=$REQUEST_URI; while($ur1 != ""){  

基于PHP实现简单的随机抽奖小程序_php实例

一个抽奖小程序,概论可控,也可某个奖品在前端显示,而程序中根本不可能获得!把所有的概率x10后相加起来,新数组中每项的值等于它前几个的和加上它本身. 然后随即生成一个0到最大数之间的一个数,通过循环查看它属于那个区间,返回该区间的key. 代码如下 $prize = array( 1 => 3.5, //3.5%机率 2 => 2.5, 3 => 6, 4 => 2, 5 => 42, //42%机率 6 => 36, 7 => 2, 8 => 4, 9 =

基于jQuery实现多条件筛选实现程序

我们在电商平台购买商品时,在商品列表页根据品牌.款式.价格范围等条件进行筛选查询,当点击某个条件时,在页面上会显示用户所选择的条件集合,并且将对应的符合条件的商品信息展示出来.那么今天我们使用jQuery来实现这一前端效果. HTML 首先,我们将查询条件分类,在页面中布置条件容器li.select-list和已选择的条件容器div.select-result.   <ul class="select">         <li class="select-

基于jQuery Ajax PHP文件上传程序代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"         "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <meta http-equiv=&q

使用PHP编写发红包程序_php实例

使用PHP发红包,当我们输入红包数量和总金额后,PHP会根据这两个值进行随机分配每个金额,保证每个人都能领取到一个红包,每个红包金额不等,就是要求红包金额要有差异,所有红包金额总额应该等于总金额. 我们先来分析下规律. 设定总金额为10元,有N个人随机领取: N=1 第一个 则红包金额=X元: N=2 第二个 为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数. 第二个红包=10-第一个红包金额: N=3 第三个 红包1=0.01至9.99之间的某个随机数 红包2=