• 旋转抽奖效果


      近期写的一个旋转抽奖的程序,贴出来让大家看看,那些的不好的,可以指出,相互交流。

      

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3     <head>
     4         <meta http-equiv="content-type" content="text/html" charset="GB2312"/>
     5         <title>抽奖</title>
     6         <style type="text/css">
     7         *{margin: 0;padding: 0;list-style: none;}
     8         .box{width: 900px;height: 600px;border: 1px solid #000;}
     9         .box li{width: 300px;height: 200px;float: left; position: relative;}
    10         .btn{width: 300px;height: 200px;font-size: 48px;text-align: center;line-height: 200px;cursor: pointer;}
    11         .grayLayer{width: 300px;height: 200px;background: #000;opacity: .5;filter: alpha(opacity = 50); position: absolute;top:0;left: 0;}
    12         .getIt .grayLayer{opacity: 0;filter: alpha(opacity = 0);}
    13         </style>        
    14     </head>
    15     <body>
    16         <ul class="box">
    17             <li class="pic">
    18                 <img src="http://d.hiphotos.baidu.com/image/h%3D360/sign=42c72eb65166d0166119982ea72bd498/8601a18b87d6277fe5339f432b381f30e924fcac.jpg" width="300" height="200" alt="" />
    19                 <div class="grayLayer"></div>
    20             </li>
    21             <li class="pic">
    22                 <img src="http://d.hiphotos.baidu.com/image/h%3D360/sign=42c72eb65166d0166119982ea72bd498/8601a18b87d6277fe5339f432b381f30e924fcac.jpg" width="300" height="200" alt="" />
    23                 <div class="grayLayer"></div>
    24             </li>
    25             <li class="pic">
    26                 <img src="http://d.hiphotos.baidu.com/image/h%3D360/sign=42c72eb65166d0166119982ea72bd498/8601a18b87d6277fe5339f432b381f30e924fcac.jpg" width="300" height="200" alt="" />
    27                 <div class="grayLayer"></div>
    28             </li>
    29             <li class="pic">
    30                 <img src="http://d.hiphotos.baidu.com/image/h%3D360/sign=42c72eb65166d0166119982ea72bd498/8601a18b87d6277fe5339f432b381f30e924fcac.jpg" width="300" height="200" alt="" />
    31                 <div class="grayLayer"></div>
    32             </li>
    33             <li>
    34                 <div class="btn">点击抽奖</div>
    35             </li>
    36             <li class="pic">
    37                 <img src="http://d.hiphotos.baidu.com/image/h%3D360/sign=42c72eb65166d0166119982ea72bd498/8601a18b87d6277fe5339f432b381f30e924fcac.jpg" width="300" height="200" alt="" />
    38                 <div class="grayLayer"></div>
    39             </li>
    40             <li class="pic">
    41                 <img src="http://d.hiphotos.baidu.com/image/h%3D360/sign=42c72eb65166d0166119982ea72bd498/8601a18b87d6277fe5339f432b381f30e924fcac.jpg" width="300" height="200" alt="" />
    42                 <div class="grayLayer"></div>
    43             </li>
    44             <li class="pic">
    45                 <img src="http://d.hiphotos.baidu.com/image/h%3D360/sign=42c72eb65166d0166119982ea72bd498/8601a18b87d6277fe5339f432b381f30e924fcac.jpg" width="300" height="200" alt="" />
    46                 <div class="grayLayer"></div>
    47             </li>
    48             <li class="pic">
    49                 <img src="http://d.hiphotos.baidu.com/image/h%3D360/sign=42c72eb65166d0166119982ea72bd498/8601a18b87d6277fe5339f432b381f30e924fcac.jpg" width="300" height="200" alt="" />
    50                 <div class="grayLayer"></div>
    51             </li>
    52         </ul>
    53         <script src="http://static.xgo-img.com.cn/js/jquery172p.js" type="text/javascript"></script>
    54         <script type="text/javascript">
    55         var count = [0,1,2,4,7,6,5,3];//图片旋转顺序
    56         var speedNum = 500; //初始速度
    57         var baseNum = 0;
    58         var oBtn = $(".btn");
    59         var oCartoonBox = $("li.pic");
    60         var timer  = null;
    61         var countNum  = 0; /*动画进行步数*/
    62         var stopNum = Math.floor(Math.random()*8);/*控制动画停在第几帧 6是第七张*/
    63         oBtn.click(function () {
    64             donghua();//点击启动动画
    65         })
    66             function donghua () {
    67                 if(timer){clearTimeout(timer)};//清除排队现象
    68                     speedNum -=50;
    69                     countNum ++;
    70                     if (speedNum<50) {
    71                         speedNum = 50;
    72                     }
    73                     if (baseNum>7) {
    74                         baseNum = 0;
    75                     }
    76                     oCartoonBox.eq(count[baseNum]).addClass("getIt").siblings().removeClass("getIt");
    77                     baseNum ++;        
    78                     
    79                     if (countNum>(33+stopNum)) {/*33表示动画转了4圈之后开始减速,33 = 4 * 8 + 1*/
    80                         
    81                         speedNum +=100;
    82                         console.log(speedNum);
    83                         if (speedNum>=500) {
    84                             oCartoonBox.eq(count[stopNum]).addClass("getIt").siblings().removeClass("getIt");
    85                             clearTimeout(timer);
    86                             return;
    87                         }
    88                     }
    89                     timer = setTimeout(donghua,speedNum);        
    90             }
    91         </script>
    92     </body>
    93 </html>

    大概说一下思路:

    1. 通过数组,人为的设定动画旋转的顺序;

    2. 动画就是所有参与旋转的元素轮流添加类和移除类,类是控制添加li上面浮层隐藏和显示的class名;

    3. 动画停止是先生成一个随机数,这个数就是控制动画停在哪一帧上,因为这个代码一共8帧,因此提前8帧开始减速;当旋转到此帧的时候return;

    欢迎大家赐教,谢谢。

      

    千里之行,始于足下
  • 相关阅读:
    Expect学习笔记(1)
    Awk 实例,第 3 部分
    ELF文件格式(中文版)
    sed 实例,第 1 部分
    Expect 教程中文版
    csc工具一般使用说明zz
    Microsoft Office Word 2010(zz)
    记录XPO查询 日志
    C#中判断文件或文件夹是否存在
    Discuz数据库结构1
  • 原文地址:https://www.cnblogs.com/ajieyingqulvxing/p/4119204.html
Copyright © 2020-2023  润新知