水果机抽奖

不过w关于拉霸,水果机  他们的抽奖活动

我做了两次,网上也借鉴了很多案例,但是发现都不是特别全面

因为我们做一个抽奖的活动,肯定是有弹窗的,有中奖和未中奖的判断,以及中奖几率,中哪种奖项的判断

这些都是困扰这我的,因为我找的案例都没有这么全面的例子,

我们先来看第一个案例

是个盛世公主号做的一个抽奖页面:

这个页面 我是借用了这个案例

链接   http://www.17sucai.com/pins/demoshow/26298

引入了这两个js

这个案例是一张背景图上多个奖品,

那关于中奖机制,动画什么的 我们都不是太好判断,当然 我们也可以根据background-position-y 来判断

但是在移动端,我们只能依据rem的尺寸来判断,讲真的  非常不好判断,因为一不注意,动画停止的时候,奖品只有半截图显示在奖品框中,

不过这个插件的随机数很好判断:

其实这个插件还蛮简单的,但是中奖奖品的位置我实在是设置不好,所以觉得这个头疼,然后对这个插件就喜欢不起来了

---- 后来我们另外一个项目,也要做拉霸这种活动,pc和手机端都需要,我当时就心态崩了,然后又在网上找插件,希望这一次能做好

苍天不负我也

我又找到一个插件,当然,不可能拿过来我就能用的,肯定是要修改一番,至少说要修改成我需要的样子,不过还是很感谢写这个插件的大哥

jQuery实现拉霸抽奖系统插件slotmachine

链接  http://www.xwcms.net/webAnnexImages/fileAnnex/20140522/87231/index.html

这个插件相信大家用的很多,确实 我感觉它非常的好用。因为他每一个奖品都是分开的

话不多说,我直接上代码吧

html:

<!--拉霸--><div class="line">  <div class="machinBox">    <div class="machineContainer">      <div id="machine1" class="slotMachine">        <div class="slot slot1"></div>        <div class="slot slot2"></div>        <div class="slot slot3"></div>      </div>      <div id="machine2" class="slotMachine">        <div class="slot slot1"></div>        <div class="slot slot2"></div>        <div class="slot slot3"></div>      </div>

<div id="machine3" class="slotMachine">        <div class="slot slot1"></div>        <div class="slot slot2"></div>        <div class="slot slot3"></div>      </div>    </div>    <div id="slotMachineButton1" class="slotMachineButton"></div>  </div></div>

css:靠大家自己写了,,,可以参考原本的案例哦

js:  
<script src="js/jquery-2.1.0.min.js"></script> <script src="js/jquery.slotmachine.js"></script>

这两个js是必须引入的

然后就来看一下我写的Js吧:

因为我这个是调用了接口的,相信很多小伙伴都是前后端分离的,希望对你有些帮助哈
//拉霸$(document).ready(function(){//动画    var machine1 = $("#machine1").slotMachine({        delay  : 500    });

var machine2 = $("#machine2").slotMachine({        delay  : 500    });

var machine3 = $("#machine3").slotMachine({        delay  : 500    });

//点击抽奖开始    $("#slotMachineButton1").click(function(){        $.ajax({            type: ‘post‘,            url: "http://membership.rcclchina.com.cn/mbd.Nov/luck",            data: {},            dataType: "json",            success: function(data){                $(".lottery .addressLis").show();

if(data==null)return;                这里我申请了三个变量,我的抽奖活动是三个转动的                var index1=0;                var index2=1;                var index3=1;                switch(data.code){                   //未中奖                    case "0":                        index1=0;                        index2=1;                        index3=2;                        主要看这里: index1 index2 index3 这三个变量其实就是奖品,最后动画停止的时候显示的是第几个奖品就依赖于这三个变量                        因为我们需要一个时间差,动画执行不是一起执行的,而是延迟了多少秒以后执行,相信大家都能明白的                        machine1.shuffle(5,onComplete,index1);                        setTimeout(function(){                            machine2.shuffle(5,onComplete,index2 );                        }, 500);                        setTimeout(function(){                            machine3.shuffle(5,onComplete,index3 );                        }, 1000);                        setTimeout(function () {                            hid();                            $(".modelBox,.Nolottery").fadeIn();                        },5000);                        break;                    case "1":                         中一等奖                        index1=0;                        index2=0;                        index3=0;                        machine1.shuffle(5,onComplete,index1);                        setTimeout(function(){                            machine2.shuffle(5,onComplete,index2 );                        }, 500);                        setTimeout(function(){                            machine3.shuffle(5,onComplete,index3 );                        }, 1000);                        setTimeout(function () {                           插件里面规定动画持续时间是5秒,所以我们的弹窗是动画执行完毕以后才显示                            hid();                            $(".lottery .gitps span").html("德国品牌滤水壶");                            $(".modelBox,.lottery").fadeIn();                        },5000);                        break;                    case "2":                        index1=2;                        index2=2;                        index3=2;                        machine1.shuffle(5,onComplete,index1);                        setTimeout(function(){                            machine2.shuffle(5,onComplete,index2 );                        }, 500);                        setTimeout(function(){                            machine3.shuffle(5,onComplete,index3 );                        }, 1000);                        setTimeout(function () {                            hid();                            $(".lottery .gitps span").html("100元电商购物卡");                            $(".lottery .addressLis").hide();                            $(".modelBox,.lottery").fadeIn();                        },5000);                        break;                    case "3":                        index1=1;                        index2=1;                        index3=1;                        machine1.shuffle(5,onComplete,index1);                        setTimeout(function(){                            machine2.shuffle(5,onComplete,index2 );                        }, 500);                        setTimeout(function(){                            machine3.shuffle(5,onComplete,index3 );                        }, 1000);                        setTimeout(function () {                            hid();                            $(".lottery .gitps span").html("10元手机话费");                            $(".lottery .addressLis").hide();                            $(".modelBox,.lottery").fadeIn();                        },5000);                        break;                    case "-1":                        $(".modelBox,.login").fadeIn();                        break;                    case "-2":                        $(".modelBox,.login").fadeIn();                        break;                    case "-3":                        hid();                        $(".modelBox,.moNolottery").fadeIn();                        return;                }            },error:function(){            }        });

})});

然后,我们来看一下我改了插件哪里为什么改插件呢,做过抽奖活动的小伙伴都知道,这个中奖率是由后台控制的,我们前端需要拿到一个参数,是否中奖,如同上面一样,0表示未中奖, 所以我们的奖品只能显示三个不一样的, 那如果返回的参数是1 那表示抽中了1等奖,那我们就需要让奖品显示一样,并且,是一等奖

我这里没有贴出原本的插件代码, 这个只是显示的我修改过后的代码,

我是增加了一个参数,最后显示的奖品是我传的参数,参数是2,那显示的奖品的下标就是2

就这么多了,希望对大家有用。

 
时间: 2024-08-06 23:38:43

水果机抽奖的相关文章

slot水果机抽奖思路

创建一个数组,数组里把所有的奖项按顺序里面,这个数组可命名为rewardArr,数组里面放每个奖项对应的显示对象.根据mvc的思想,所见非所得,每次刚点下抽奖按钮的时候,就给他随机出一个奖品,然后在随机一个转的圈数 接下来是滚动的显示,滚动就用TweenMax去解决,他里面有各种加速减速曲线,具体在用的时候,var rewardArr:Array = [a,b,c,d,e,f.....]; var redLightArr:Array = [n,n,n,n,n.....];var duration

《微赢微信公众平台系统5月14最新破解高级运营版+水果机+邀请函+微汽车+微食品+用户CRM》

<微赢微信公众平台系统5月14最新破解高级运营版+水果机+邀请函+微汽车+微食品+用户CRM> 此版本目前是淘宝卖600RMB的,其它VIP源码论坛也都还没有发布,咱们这里完全免费分享出来,但这里先说明下,别拿回去叫着安装不了,这套微赢微信公众平台系统5月14最新破解高级运营版需要在php 5.4版本下面才能安装,目前一般的虚拟主机都无法正常安装. 非常感谢分享此套源码的童鞋,希望更多的童鞋能分享好的资源. 下面是我们亲测截图 微赢高级版正式上线,支持后台一键更新升级.高级版新功能:新版商城,

H5水果机,一个网络版的lao hu ji

该游戏为h5小游戏,纯属娱乐,技术探讨,相关技术在文章结尾,欢迎探讨交流 花了几天时间开发了这款水果lao hu ji,更新了几个版本,还有不足的地方,由于时间有限暂时没有继续更新新版本 未完成的功能如下: 1.按钮的交互UI特效和声音 2.跑马灯效果 3.转盘转动的声音及中奖声音 4.加载页面完善(动画) 5.一些小bug 先看一下效果图: 下方二维码,扫一扫可体验游戏 版本更新记录: 注明:该游戏纯属娱乐 关于后期升级的畅想: 1.开发一个游戏大厅,可创建房间,可在不同级别的房间进行游戏 2

没有水果机的也来体验下Visual Studio for Mac

在去年微软已经宣布.NET将实现真正的跨平台,并且发布了Mac和Linux版的Visual Studio Code编辑器,但强大的Visual Studio确只有Windows版. 还坚守.NET开发者的春天就要到来了,前几天微软终于发布了针对Mac系统的集成开发环境Visual Studio,拥有智能感知,代码重构使用Roslyn Compiler平台,并使用和Xamarin and .NET Core apps相同的调试器引擎,虽然Mac版Visual Studio不支持所有Visual S

JAVA 水果机游戏及编码

[转自 http://tech.it168.com/j/2007-11-07/200711070910328_1.shtml] 3.      游戏的开发与编码 在我们开发这个游戏之前,我们先讲一个这个游戏的实现所采用的方法,那就是经典的MVC模式,因为在开发游戏的时候,结构很重要,必须要理清楚每一块负责什么,每一个类负责什么,而MVC模式正好就是解决这种问题的很好的方案,我们可以把游戏的运行流程交由一个类去统一调度,游戏的呈现也就是绘图用专门一个类去负责,而绘图所需的数据可以从一个模型类里面去

绝对定位模拟固定定位效果...

今天下班,突然发现同学在群里求救解决固定定位在移动端偏移的问题,本屌丝猛地一颤:那一天,我终于回想起来了,曾经一度被ios固定定位失效所支配的恐怖,还有被市场妹子一脸嘲讽的看着的那份屈辱...(本屌意淫一下巨人). 真是情况就是,ios对固定定位的支持有点奇葩,当固定定位的层里有input一类的能调动虚拟键盘的元素时,一旦用户聚焦这些元素,固定定位的层级中的元素会发生位移,也就是俗称的页面错乱了,本屌当时寻遍网上各种方案,试了大半天时间(其实,就是因为没钱穷屌丝一枚,没有水果手机,每次测试都要厚

1-1、article元素

示例一: <article> <header> <h1>苹果</h1> <p>发表日期:<time pubdate>2017/07/02</time></p> </header> <p><b>苹果</b>,植物类水果</p> <footer> <p><small>公司所有</small></p>

深夜闲聊节目:华为 Mate7的指纹识别安全么?

许久没有写过任何东西,最近很忙而且还要准备找工作之类的,唉... ....今天的文章也不说技术,只是闲聊. 一.手机指纹识别一揽 打开很多网站.论坛的科技栏目,充斥着各种手机讯息!仿佛手机已经成了科技的代名词.更凶残的是,今年科技界,哦不,手机界永远少不了各种新闻:先是Zealer 和锤子的骂战,再是魅族攒了一年的新闻一起发,紧接着联想.HTC.Moto 不断放大招,最后是苹果的亮相.水货价格更是闪瞎我等屌丝的氪金狗眼 ... ... 手机/科技界的故事还远远没有尽头! 但是,但是... ...

JeeWx 商业版本最近新增什么功能啦?

JeeWx 商业版本最近新增什么功能啦? 2014-12-18 jeecg JEECG jeewx开发新功能 一.微信墙 此功能可以设置属于该公共号的微信墙,在微信客户端上输入微信墙即可进入微信墙模式,输入退出微信墙即可退出该模式,效果图如下: 用户可以通过平台界面进入微信墙查看效果 二.微签到 三.竞选投票PK 用户可以通过微信的竞选投票PK设置竞选投票,在客户端就可以显示竞选投票的 四.摇一摇 此功能增加用户与公众号的互动活动,也属于摇奖活动中的一种,用户输入进入摇一摇界面,摇一摇即可 五.