js轮盘抽奖

需求:实现中奖是否可控

思路:通过旋转角度来实现轮盘转动,根据角度来确定是否中奖

 window.onload = function(){

     var oTurn = document.getElementById('turntable');
     var oStart = document.getElementById('start');
     var timer, timer2 = null;
     var deg = 0;    //当前旋转度数
     var iSpeed = 0;    //加速减速变量
     var iNum = 1800;    //旋转角度(旋转多少圈360*i)
     var iZ = 45+60*1;    //可中奖的值(15+60*i), 不中奖的值(45+60*i)
     var iTotal = iNum + iZ;    //总共旋转度数
     var bStop = true;    //可点击开关
     var iTp = 0;        //保存下一次旋转需要的总度数
     var bFirst = true;    //是否第一次点击

     oStart.onclick = function(){
         start();
     };

     function start(){
         if(bStop){
             bStop = false;

             timer = setInterval(function(){
                 //第一次点击,小于总度数的一半时加速,大于一半是减速,速度小于0时,默认为0.5
                 if(bFirst){
                     if(deg<=iTotal/2){
                         iSpeed = iSpeed + 0.1;
                     }
                     if(deg>iTotal/2){
                         iSpeed -= 0.1;
                     }
                     if(iSpeed <= 0){
                         iSpeed = 0.5;
                     }
                 }else{
                     if(deg<=iTp/2){
                         iSpeed = iSpeed + 0.1;
                     }
                     if(deg>iTp/2){
                         iSpeed -= 0.1;

                     }
                     if(iSpeed <= 0){
                         iSpeed = 0.5;
                     }
                 }    

                 deg+=iSpeed;    //每次旋转度数=当前度数+ 速度变量(速度快,旋转快,即加速运动;速度慢,减速运动)        

                 //当前度数大于等于总度数是停止
                 if(deg>=iTotal){
                     clearInterval(timer);
                     deg%=360;                //设置
                     iTp = iTotal + deg;        //下一次旋转的总度数
                     iSpeed = 0;                //重置
                     bFirst = false;
                     bStop = true;
                     return false;
                 }else{
                     $('#turntable').css({'-webkit-transform':'rotate(' + deg + 'deg)'});
                 }

             }, 30);
         }
     }    

 };

js轮盘抽奖的更多相关文章

  1. C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断

    C#保留2位小数几种场景总结   场景1: C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.2 ...

  2. 原生js轮盘抽奖实例分析(幸运大转盘抽奖)

    效果图: 所需图片素材: 这张图是pointer.png的位置的. turntable-bg.jpg这张是转盘背景图,在背景位置. 这张是turntable.png位置的. 需要这三张图片,如果要实现 ...

  3. js转盘抽奖

    这个是很简易的转盘,只用了html,css,js 通过css产生一个转盘上的指针,用js动态改变css中的transparent改变指针的角度.再添加一个背景图片类似于奖项的转盘 <!DOCTY ...

  4. js一个抽奖的例子

    朋友公司开年会,帮忙写了个抽奖的demo,源码如下,github中有程序: html: <header> lottery demo </header> <div clas ...

  5. Js 转动抽奖实现

    一.样本 地址:http://js.zhuamimi.cn/choujiang/index.htm 源码:https://pan.baidu.com/s/15KhesfcLf1WMOom6PhzCjA ...

  6. js实现抽奖

    抽奖.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  7. js 简单抽奖实现

    大家在很多活动页面上都看到绚丽多彩的抽奖运用,网上也有比较多关于这方面的js和用as.今天我在工作的时候也要做个抽奖的运用.我之前没有写过这类的js,也不会as,就得屁颠屁颠的问度娘啦,虽然找到有js ...

  8. jquery.rotate.js可选抽奖次数和中奖内容的转盘抽奖demo

    需求: 最多可以抽奖5次,而且,每次只会中“2000元理财金”或者“谢谢参与”,其它的不会抽中(哈哈,果然都是套路). 效果如下: 一.页面结构: <div class="g-cont ...

  9. JS数组抽奖程序教学实例

    数组Javascript中非常重要的知识点,为了在课堂上提高学生兴趣,教学举例的选择就比较重要了. 为了提高学生兴趣,特设计一个可输入,可控制结束的,利用JS数组实现的抽奖教学实例.代码如下:

随机推荐

  1. ubuntu ~/.bash_history

    sudo apt-get update sudo apt-get install python-pip sudo pip install Django==1.7.1 sudo apt-get inst ...

  2. 高级UNIX环境编程3 FILE IO

    POSIX中,STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO 对应0,1,2 每个打开的文件都有一个与其想关联的 "current file offset& ...

  3. css网页自适应-1

    一."自适应网页设计"的概念 2010年,Ethan Marcotte提出了"自适应网页设计"(Responsive Web Design)这个名词,指可以自动 ...

  4. uva - The Lottery(容斥,好题)

    10325 - The Lottery The Sports Association of Bangladesh is in great problem with their latest lotte ...

  5. windows phone:使用sqlite-net

    继上篇文章后,这里简单介绍下sqlite-net的使用(示例不为作者所写,摘自于:https://github.com/peterhuene/sqlite-net) Please consult th ...

  6. MiddleGenIDE工具的使用

    1. MiddleGenIDE工具            1) 先在网上下载MiddleGenIDE工具.能够參考这里 http://blog.csdn.net/wangcunhuazi/articl ...

  7. 周根项《一分钟速算》全集播放&amp;下载地址

    点击图片就可以观看 ↓↓↓↓↓↓↓↓ 第1章:指算法 周根项<一分钟速算>第1章:指算法 第一节 对手的认识 周根项<一分钟速算>第1章:指算法 第二节 个位数比十位数大1乘以 ...

  8. UIColor深入研究(CGColor,CIColor)

    由于跟人比较喜欢研究关于图层与动画方面的技术,正打算看看别人写的好东西,就遇到了好几个问题, 第一:UIClor类方法的使用 就是关于UIColor的使用,记得之前开发中我们使用的都是UIColor后 ...

  9. java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.MethodNode(尼玛,蛋疼的错误)

    java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.MethodNode   \-[M ...

  10. Python函数式编程:内置filter函数使用说明

    filter操作是函数式编程中对集合的重要操作之一,其作用是从原集合中筛选符合条件的条目,组成一个新的集合. 这在我们日常编程中是非常常见的操作.我们通常的做法是通过循环语句来处理. 而使用filte ...