zoukankan      html  css  js  c++  java
  • jquery.rotate.js可选抽奖次数和中奖内容的转盘抽奖demo

    需求:

    最多可以抽奖5次,而且,每次只会中“2000元理财金”或者“谢谢参与”,其它的不会抽中(哈哈,果然都是套路)。

    效果如下:

    一、页面结构:

     1 <div class="g-content">
     2     <div class="g-lottery-case">
     3         <div class="g-left">
     4             <h2>您已拥有<span class="playnum"></span>次抽奖机会,点击立刻抽奖!~</h2>
     5             <div class="g-lottery-box">
     6                 <div class="g-lottery-img">
     7                 </div>
     8                 <a class="playbtn" href="javascript:;" title="开始抽奖"></a>
     9             </div>
    10         </div>
    11     </div>
    12 </div>

    标签h2为提示内容,.playnum是剩余抽奖次数,.g-lottery-img是最外层的闪灯,.g-lottery-img是转动的内容,.playbtn是点击抽奖按钮。

    这里用的是jquery.rotate.js,所以要引入jquery然后引入jquery.rotate.js,百度一下很简单的,没几个AIP。

    二、简单的样式:

     1 <style>
     2     .g-content {
     3         width: 100%;
     4         background: #fbe3cc;
     5         height: auto;
     6         font-family: "微软雅黑", "microsoft yahei";
     7     }
     8     .g-content .g-lottery-case {
     9         width: 500px;
    10         margin: 0 auto;
    11         overflow: hidden;
    12     }
    13     .g-content .g-lottery-case .g-left h2 {
    14         font-size: 20px;
    15         line-height: 32px;
    16         font-weight: normal;
    17         margin-left: 20px;
    18     }
    19     
    20     .g-content .g-lottery-case .g-left {
    21         width: 450px;
    22         float: left;
    23     }
    24     .g-lottery-box {
    25         width: 400px;
    26         height: 400px;
    27         margin-left: 30px;
    28         position: relative;
    29         background: url(ly-plate-c.gif) no-repeat;
    30     }
    31     .g-lottery-box .g-lottery-img {
    32         width: 340px;
    33         height: 340px;
    34         position: relative;
    35         background: url(bg-lottery.png) no-repeat;
    36         left: 30px;
    37         top: 30px;
    38     }
    39     .g-lottery-box .playbtn {
    40         width: 186px;
    41         height: 186px;
    42         position: absolute;
    43         top: 50%;
    44         left: 50%;
    45         margin-left: -94px;
    46         margin-top: -94px;
    47         background: url(playbtn.png) no-repeat;
    48     }
    49 </style>

    样式就定一下高度,居中一下,显示一下背景图片

    三、JS代码:

     1 <script>
     2     $(function() {
     3         var $btn = $('.g-lottery-img');// 旋转的div
     4         var playnum = 5; //初始次数,由后台传入
     5         $('.playnum').html(playnum);//显示还剩下多少次抽奖机会
     6         var isture = 0;//是否正在抽奖
     7         var clickfunc = function() {
     8             var data = [1, 2, 3, 4, 5, 6];//抽奖
     9             //data为随机出来的结果,根据概率后的结果
    10             data = data[Math.floor(Math.random() * data.length)];//1~6的随机数
    11             switch(data) {
    12                 case 1:
    13                     rotateFunc(1, 0, '恭喜您获得2000元理财金');
    14                     break;
    15                 case 2:
    16                     rotateFunc(2, 0, '恭喜您获得2000元理财金2');
    17                     break;
    18                 case 3:
    19                     rotateFunc(3, 0, '恭喜您获得2000元理财金3');
    20                     break;
    21                 case 4:
    22                     rotateFunc(4, -60, '谢谢参与4');
    23                     break;
    24                 case 5:
    25                     rotateFunc(5, 120, '谢谢参与5');
    26                     break;
    27                 case 6:
    28                     rotateFunc(6, 120, '谢谢参与6');
    29                     break;
    30             }
    31         }
    32         $(".playbtn").click(function() {
    33             if(isture) return; // 如果在执行就退出
    34             isture = true; // 标志为 在执行
    35             if(playnum <= 0) { //当抽奖次数为0的时候执行
    36                 alert("没有次数了");
    37                 $('.playnum').html(0);//次数显示为0
    38                 isture = false;
    39             } else { //还有次数就执行
    40                 playnum = playnum - 1; //执行转盘了则次数减1
    41                 if(playnum <= 0) {
    42                     playnum = 0;
    43                 }
    44                 $('.playnum').html(playnum);
    45                 clickfunc();
    46             }
    47         });
    48         var rotateFunc = function(awards, angle, text) {
    49             isture = true;
    50             $btn.stopRotate();
    51             $btn.rotate({
    52                 angle: 0,//旋转的角度数
    53                 duration: 4000, //旋转时间
    54                 animateTo: angle + 1440, //给定的角度,让它根据得出来的结果加上1440度旋转
    55                 callback: function() {
    56                     isture = false; // 标志为 执行完毕
    57                     alert(text);
    58                 }
    59             });
    60         };
    61 
    62     });
    63 </script>

     说到底就是用一个1~6的随机数,然后把对应的角度值传给jquery.rotate.js,它就会转到相应的地方,最后做一下对应剩余次数的判断和修改。

    最后所有代码为:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title>抽奖</title>
        <meta name="keywords" content="">
        <meta name="description" content="">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="renderer" content="webkit">
        <style>
        .g-content {
             100%;
            background: #fbe3cc;
            height: auto;
            font-family: "微软雅黑", "microsoft yahei";
        }
        .g-content .g-lottery-case {
             500px;
            margin: 0 auto;
            overflow: hidden;
        }
    
        .g-content .g-lottery-case .g-left h2 {
            font-size: 20px;
            line-height: 32px;
            font-weight: normal;
            margin-left: 20px;
        }
    
        .g-content .g-lottery-case .g-left {
             450px;
            float: left;
        }
    
        .g-lottery-box {
             400px;
            height: 400px;
            margin-left: 30px;
            position: relative;
            background: url(ly-plate-c.gif) no-repeat;
        }
    
        .g-lottery-box .g-lottery-img {
             340px;
            height: 340px;
            position: relative;
            background: url(bg-lottery.png) no-repeat;
            left: 30px;
            top: 30px;
        }
    
        .g-lottery-box .playbtn {
             186px;
            height: 186px;
            position: absolute;
            top: 50%;
            left: 50%;
            margin-left: -94px;
            margin-top: -94px;
            background: url(playbtn.png) no-repeat;
        }
        </style>
    </head>
    <body>
    <div class="g-content">
        <div class="g-lottery-case">
            <div class="g-left">
                <h2>您已拥有<span class="playnum"></span>次抽奖机会,点击立刻抽奖!~</h2>
                <div class="g-lottery-box">
                    <div class="g-lottery-img">
                    </div>
                    <a class="playbtn" href="javascript:;" title="开始抽奖"></a>
                </div>
            </div>
        </div>
    </div>
    <script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript" src="jsmin/jquery.rotate.min.js"></script>
    <script>
    $(function() {
        var $btn = $('.g-lottery-img');// 旋转的div
        var playnum = 5; //初始次数,由后台传入
        $('.playnum').html(playnum);//显示还剩下多少次抽奖机会
        var isture = 0;//是否正在抽奖
        var clickfunc = function() {
            var data = [1, 2, 3, 4, 5, 6];//抽奖
            //data为随机出来的结果,根据概率后的结果
            data = data[Math.floor(Math.random() * data.length)];//1~6的随机数
            switch(data) {
                case 1:
                    rotateFunc(1, 0, '恭喜您获得2000元理财金');
                    break;
                case 2:
                    rotateFunc(2, 0, '恭喜您获得2000元理财金2');
                    break;
                case 3:
                    rotateFunc(3, 0, '恭喜您获得2000元理财金3');
                    break;
                case 4:
                    rotateFunc(4, -60, '谢谢参与4');
                    break;
                case 5:
                    rotateFunc(5, 120, '谢谢参与5');
                    break;
                case 6:
                    rotateFunc(6, 120, '谢谢参与6');
                    break;
            }
        }
        $(".playbtn").click(function() {
            if(isture) return; // 如果在执行就退出
            isture = true; // 标志为 在执行
            if(playnum <= 0) { //当抽奖次数为0的时候执行
                alert("没有次数了");
                $('.playnum').html(0);//次数显示为0
                isture = false;
            } else { //还有次数就执行
                playnum = playnum - 1; //执行转盘了则次数减1
                if(playnum <= 0) {
                    playnum = 0;
                }
                $('.playnum').html(playnum);
                clickfunc();
            }
        });
        var rotateFunc = function(awards, angle, text) {
            isture = true;
            $btn.stopRotate();
            $btn.rotate({
                angle: 0,//旋转的角度数
                duration: 4000, //旋转时间
                animateTo: angle + 1440, //给定的角度,让它根据得出来的结果加上1440度旋转
                callback: function() {
                    isture = false; // 标志为 执行完毕
                    alert(text);
                }
            });
        };
    });
    </script>
    </body>
    </html>
    View Code

    所需要的图片(这里好像上传不了压缩文件,所以不能整个打包上传了):

    #复制下面的图片名称-鼠标移到图片上-右键-图片另存为-粘贴保存#

    1.最外面的闪灯:ly-plate-c.gif

    2.六个中奖内容:bg-lottery.png

    3.点击抽奖按钮: playbtn.png

  • 相关阅读:
    Tuxedo 介绍
    winform如何不卡界面
    银行基金代销系统调研
    如何在wcf中用net tcp协议进行通讯
    20190710用控制台启动一个wcf服务
    wcf必知必会以及与Webapi的区别
    2019年7月第一周总结-RabbitMQ总结
    RabbitMQ入门学习系列(七) 远程调用RPC
    RabbitMQ入门学习系列(六) Exchange的Topic类型
    RabbitMQ入门学习系列(五) Exchange的Direct类型
  • 原文地址:https://www.cnblogs.com/zhengshize/p/7413110.html
Copyright © 2011-2022 走看看