H5Lotteryraw

功能描述

  1. 使用jQ写的可变奖励打转盘。
  2. 可调用getWheelInfo()方法,请求后端奖品,中奖概率,动态实现大转盘内容。
  3. 也可前端编写固定值奖品,及随机值中奖概率使用。
  4. 使用了jquery.jsjqueryRotate.js
  5. 因需展示,模块内默认使用的是方法一。
  6. [参考](https://github.com/MiuMiu-S/Draw-a-iottery)。。

快速使用

方法一

不请求后端,直接前端编写固定值奖品,及随机值中奖概率使用。 赋初值,奖品图标可为空。

  1. turnWheel.reward = [{name : '奖品名称', image : '奖品图标', color : '奖品区域背景色'},{……}]; //json数据

然后直接调用 jquery.js,jQueryRotate.js和zknight_h5screenshot_common.js文件即可。

方法二

首先注释

  1. //$(function(){
  2. // initImageAndReturn();
  3. //});
  4. //window.onload = function() {
  5. // drawWheelCanvas();
  6. //};

然后初始化大转盘中奖信息。

  1. function getWheelInfo(){
  2. //简易封装的apicloud的ajax方法
  3. ajaxPost("", null, function(ret, err){
  4. turnWheel.reward = ret.data; //获取奖品信息
  5. //初始化奖品图片
  6. initImageAndReturn();
  7. //初始化大转盘,需页面信息加载完毕后调用
  8. window.onload = function() {
  9. drawWheelCanvas();
  10. };
  11. });
  12. }

最后编写抽奖按钮: onPointer()抽奖按钮方法,放开注释,自行请求编写后端中奖奖品,及后续逻辑。

  1. function onPointer(){
  2. // 正在转动,直接返回
  3. if(turnWheel.bRotate){
  4. return
  5. }
  6. turnWheel.bRotate = !turnWheel.bRotate;
  7. var count = turnWheel.reward.length;
  8. //若是后端请求,则注释 start
  9. // 开始抽奖
  10. //rotateFunc(4, turnWheel.reward[4].name,count);
  11. //end
  12. //后端请求,放开注释,并编写相应方法
  13. // 从服务器获取用户真实的获奖信息(对应的获奖序号)
  14. ajaxPost("", {
  15. values : {
  16. }
  17. }, function(ret, err){
  18. //index 奖品下标,即奖品文字描述的下标
  19. rotateFunc(ret.index, turnWheel.rewardNames[ret.index],count);
  20. });
  21. }

特别说明

  1. 请求方式后端信息的方式,根据各自需求使用及编写即可。我这里用的时apicloudajax请求方式。
  2. 需支持canvas
  3. 请严格按照本人编写的初始参数turnWheel.reward中的json格式。若需自行编写参数,请修改对应方法调用的参数名称。
  4. 页面加载完毕后,方可绘制大转盘。