砸金蛋被广泛应用于庆典活动、商家促销、电视娱乐等场合,它的趣味、悬念能迅速活跃现场气氛。同样,我们也可以将砸金蛋应用到WEB网站上,用于开展线上活动。本文将使用jQuery与PHP讲解如何实现一个WEB砸金蛋程序。

准备

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

HTML

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

锤子

1         2         3

上述代码中,.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来试试你的运气吧。

砸蛋程序php,砸金蛋:jQuery+PHP实现的砸金蛋中奖程序相关推荐

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

    准备 我们需要准备道具(素材),即相关图片,包括金蛋图片.蛋砸碎后的图片.砸碎后的碎花图片.以及锤子图片. HTML 我们页面上要展现的是一个砸金蛋的台子,台上放了编号为1,2,3的三个金蛋,以及一把 ...

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

    砸金蛋被广泛应用于庆典活动.商家促销.电视娱乐等场合,它的趣味.悬念能迅速活跃现场气氛.同样,我们也可以将砸金蛋应用到WEB网站上,用于开展线上活动.本文将使用jQuery与PHP讲解如何实现一个WE ...

  3. 用php编写比赛评奖系统_基于JQuery+PHP编写砸金蛋中奖程序

    首先给大家展示效果图: 查看演示 下载源码 准备工作 我们需要准备道具(素材),即相关图片,包括金蛋图片.蛋砸碎后的图片.砸碎后的碎花图片.以及锤子图片. HTML 我们页面上要展现的是一个砸金蛋的台 ...

  4. 用Java和Jquery实现了一个砸金蛋例子

    之前在网上找到了一个Jquery+PHP实现的砸金蛋的例子,正好公司也要我写一个类似的砸金蛋的功能,于是在网上找了找参考,用Jsp程序也弄了一个出来,首先是Html的效果,我打算每次在页面上只显示一个 ...

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

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

  6. php大转盘程序,jQuery幸运大转盘_jQuery+PHP抽奖程序(下)

    上一篇讲解了幸运大转盘前端,而本文继续讲下半部分:PHP控制抽奖几率并最终实现转盘抽奖. 下载资源 下载积分: 95 积分 PHP 首先,在ajax.php中创建一个奖项对应角度和中奖几率二维数组: ...

  7. js框架jquery实现的幸运大转盘抽奖程序代码,兼容多种浏览器(Internet Explorer 6.0+ 、Firefox 2.0 、Safari 3 、Opera 9 、Chrome)

    博客目录 js框架jquery实现的幸运大转盘抽奖程序代码 实现功能截图 系统功能 使用技术 代码 写在最后 js框架jquery实现的幸运大转盘抽奖程序代码 本系统实现了一个幸运转盘抽奖,兼容多种浏 ...

  8. 幸运大转盘php逻辑判断,jQuery幸运大转盘_jQuery+PHP抽奖程序(上)

    网上转盘抽奖程序大多是flash完成的,而本文使用jQuery和PHP来实现转盘抽奖程序,为了便于理解,我们分两部分来讲解,本文讲解第一部分,侧重使用jQuery实现转盘的转动效果.第二部分侧重使用P ...

  9. 微信小程序之目前为止史上最全的微信小程序项目实例, 微信小程序实战学习

    wx-gesture-lock  微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序demo:百度小说搜索 sh ...

  10. 程序员7年和我的7点感想――我的程序人生

    程序员 7 年和我的 7 点感想 ――我的程序人生 我是1986年第一次接触计算机的,当时刚上大学,用的是VAX11-780小型机运行Basic程序,一个学期下来,算是学点皮毛.1989年,在大学因& ...

最新文章

  1. Postman系列之@RequestBody修饰的对象传参数
  2. 有道云笔记Windows桌面版v6.5.0.0去左下角广告方法
  3. Java IO: 网络
  4. C语言过时了吗?不,我们需要的是一份个人成长
  5. 淘宝如何保障业务稳定性——诺亚(Noah)自适应流控
  6. [译]1-Key-Value Coding Programming Guide 官方文档第一部分
  7. 面试题 35 : 复杂链表的复制
  8. 1296: [SCOI2009]粉刷匠
  9. HDU6322 Problem D. Euler Function【欧拉函数+数学规律】
  10. mysql 查看锁表_MySQL的四种事务隔离级别
  11. win11安装texlive 2021版本
  12. 通过GB28181实现对安防摄像头的直播回放控制
  13. 计算机快捷键大全常见的,电脑快捷键大全_计算机常用技巧
  14. Partition函数实现java(含分析)
  15. PyQt5制作一个爬虫小工具,爬取雪球网上市公司的财务数据
  16. 期货价格和点价(期货 点价)
  17. 如何寻找基因的启动子
  18. Python中 axis=0、axis=1是行还是列?
  19. 智能学习与教育市场现状研究分析-
  20. [Bartender]C#调用BartenderSDK使用场景-客户标签案列

热门文章

  1. 支付宝怎么看银行卡号?支付宝查询银行卡号仅需3步
  2. UML--用例图详解
  3. 失败的教训,总结下三个多月的考研历程(最终发现调剂非全复试成功了)
  4. CCS6.0新建DSP_2833x工程文件详解
  5. [Windows]笔记本触摸板手势突然不起作用的解决办法
  6. Python使用Regular入门
  7. 揭秘跨境电商亚马逊店铺最新骗局!!小白做亚马逊店铺如何防止上当受骗?
  8. 服务器gpt分区装系统,UEFI引导+GPT分区安装windows10系统超详细图文教程
  9. 金蝶K3Cloud中DBUtils的用法
  10. 【飘儿菜】-Matplotlib-绘制饼图