一个简单的转盘效果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单的转盘效果相关的知识,希望对你有一定的参考价值。

 主要代码:

  1 /**
  2  * Created by Administrator on 2016/7/25.
  3  */
  4 $(function(){
  5     var $start=$(".zhuanpan .start-zp");
  6     var $zp=$(".zhuanpan .zp-wp");
  7 
  8     //初始话旋转次数变量;
  9     var count=1;
 10     //上限次数
 11     var limit=3;
 12 
 13 
 14     //各奖项的角度
 15     var eachDeg=[0,-50,-90,-130,-180,-220,-260,-310];
 16     //各奖项的描述
 17     var eachContent=["金币50个","金币100个","谢谢参与","再来一次","抵用券5元","抵用券10元","金币5个","金币10个"];
 18     //各奖项的概率区间
 19     var GL=[0.03,0.05,0.45,0.65,0.75,0.82,0.9,1];
 20 
 21     //各奖项的回调函数
 22     function cb0(){
 23         alert("回调cb0");
 24     }
 25 
 26     function cb1(){
 27         alert("回调cb1");
 28     }
 29 
 30     function cb2(){
 31         alert("回调cb2");
 32     }
 33 
 34     function cb3(){
 35         limit++;
 36         alert("回调cb3");
 37     }
 38 
 39     function cb4(){
 40         alert("回调cb4");
 41     }
 42 
 43     function cb5(){
 44         alert("回调cb5");
 45     }
 46 
 47     function cb6(){
 48         alert("回调cb6");
 49     }
 50 
 51     function cb7(){
 52         alert("回调cb7");
 53     }
 54 
 55 
 56     var cbArray=[cb0,cb1,cb2,cb3,cb4,cb5,cb6,cb7];
 57 
 58     var clickFlag=false;
 59 
 60     $start.click(function(){
 61         console.log(count+" "+limit);
 62         if(clickFlag==false){
 63             clickFlag=true;
 64             setTimeout(function(){
 65                 clickFlag=false;
 66             },4000);
 67             if(count<=limit){
 68                 //定义一个随机概率
 69                 var random=Math.random();
 70                 //声明数组的index
 71                 var index=0;
 72                 //根据概率得到index
 73                 for(var i=0; i<8;i++){
 74                     if(random>GL[i]&&random<=GL[i+1]){
 75                         index=i+1;
 76                     }
 77                 }
 78                 //触发旋转动画
 79                 $zp.children().css({"transform":"rotate("+(eachDeg[index]-1080*count)+"deg)"});
 80                 setTimeout(function(){
 81                     //弹出对话框
 82                     if(index==2){
 83                         alert("很遗憾,谢谢惠顾");
 84                     }else if(index==3){
 85                         alert("恭喜您,再来一次");
 86                     }else{
 87                         alert("恭喜您获得"+eachContent[index]);
 88                     }
 89                     //执行函数
 90                     cbArray[index]();
 91                 },4000);
 92 
 93                 count++;
 94             }else{
 95                 alert("你的次数已用完");
 96                 clickFlag=false;
 97             }
 98         }
 99     });
100 })

 

演示地址  

demo下载

以上是关于一个简单的转盘效果的主要内容,如果未能解决你的问题,请参考以下文章

Es6语法实现的转盘抽奖效果——可配置转盘的抽奖概率

微信小程序,通过摇一摇实现大转盘抽奖的效果代码怎么写?

原生JS实现简易转盘抽奖

微信小程序-开心大转盘(圆盘指针)代码分析

Android 抽奖转盘的实现

canvas一个简单粗暴的中奖转盘