• 九宫格


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>九宫格抽奖</title>
    <style type="text/css">
    *{padding: 0;margin: 0;}
    li{ list-style-type: none;}
    a{text-decoration: none;}
    #boxDom{ 684px; height: 684px; background:url(imgs/bg.jpg) no-repeat center;margin:20px auto; position: relative;}
    #boxDom ul{ padding: 50px 55px;}
    #boxDom ul li{ 142px; height: 142px; float: left;}
    #boxDom ul li.check{ background: red}
    #clicks{ position: absolute; left:197px; top: 192px; 284px; height: 284px;}
    </style>
    </head>
    <div id="boxDom">
    <a id="clicks" href="#"></a>
    <ul>
    <li class="tt tt-0"><img src="imgs/1.png"/></li>
    <li class="tt tt-1"><img src="imgs/4.png"/></li>
    <li class="tt tt-2"><img src="imgs/3.png"/></li>
    <li class="tt tt-3"><img src="imgs/3.png"/></li>
    <li class="tt tt-11"><img src="imgs/7.png"/></li>
    <li></li><li></li>
    <li class="tt tt-4"><img src="imgs/8.png"/></li>
    <li class="tt tt-10"><img src="imgs/4.png"/></li>
    <li></li><li></li>
    <li class="tt tt-5"><img src="imgs/3.png"/></li>
    <li class="tt tt-9"><img src="imgs/5.png"/></li>
    <li class="tt tt-8"><img src="imgs/6.png"/></li>
    <li class="tt tt-7"><img src="imgs/3.png"/></li>
    <li class="tt tt-6"><img src="imgs/4.png"/></li>
    </ul>
    </div>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <script>
    var nine = {
    form:-1,//起始位置
    check:-1,//终点位置,中奖的位置
    cont:0,// 奖品的总个数
    speed:100,//滚动的速度
    min:50,//滚动的最小次数
    cycle:0,//滚动的次数
    timer:0,//定时器
    init: function(obj){
    this.obj = $(obj);
    this.cont = $(obj).find(".tt").length;
    },
    //默认设置改变样式
    roll:function(){
    var form = this.form,obj = this.obj,cont = this.cont;
    //删除前一个元素的样式
    obj.find(".tt-"+form).removeClass("check");
    form += 1;
    if(form>=cont){
    form = 0;
    }
    //元素添加类样式
    obj.find(".tt-"+form).addClass("check");
    this.form = form;

    },
    start:function(){
    /*逻辑:
    1.改变滚动的次数
    判断: 中奖:满足条件(每次其实都中奖,只是得到东西未知数)
    a.起始位置(form) == 中奖位置(check) && 滚动次数 (cycle)> 最小滚动次数(min)
    b.清除定时器
    未中奖:满足条件
    1: 当滚动的次数 小于 最小滚动的次数的时候
    控制滚动的速度 变快
    2:当滚动的次数 等于 最小滚动的次数的时候
    check = 需要来设定中奖的位置(随机)
    3:当滚动的次数 大于 最小滚动的次数的时候
    控制滚动的速度 变慢
    添加定时器
    */
    this.cycle++;
    this.roll();
    //中奖的时候,停止并数据初始化
    if( this.form == this.check && this.cycle > this.min+10 ){
    //上面加10的作用防止后面的停下来的是后突然停止
    //清除定时器,重置样式
    clearTimeout(this.timer);
    this.check = -1;
    this.cycle = 0;
    this.speed = 100;
    flag = true;
    }else{
    //当滚动的次数 小于 最小滚动的次数的时候
    if(this.cycle < this.min){
    //控制速度
    this.speed -= 10;
    if(this.speed<40)this.speed = 40;
    //当滚动的次数 等于 最小滚动的次数的时候
    }else if(this.cycle == this.min){
    //随机获取中奖的位置 0-11
    var index = Math.floor(Math.random()*this.cont);
    this.check = index;
    //当滚动的次数 大于 最小滚动的次数的时候
    }else{
    // 多加10 是为了给一个缓冲期
    if(this.cycle < this.min + 10){
    this.speed += 20;
    }else{
    this.speed += 60;
    }
    }
    //添加定时器
    this.timer = setTimeout(function(){
    nine.start();
    },this.speed)
    }
    }
    };
    var flag = true;
    if(flag){
    $("#clicks").on("click",function(){
    nine.init( $("#boxDom") );
    nine.start();
    flag = false;
    });
    }
    </script>
    </html>
  • 相关阅读:
    XML中对于一个books.xml的详情显示,删除按钮,修改并保存按钮 和 添加按钮。完成这些按钮所对应的功能(XmlDocument)。
    如何写一个验证码
    Binary Search
    数据库排行榜
    mac os 下 sublime text 2 和 iterm2 便捷配置
    HttpGet,HttpPost,HttpPut,HttpDelete
    Compile C/C++ In Eclipse for Android
    To Use EGit(Git for Eclipse)
    Android NDK about Library (static library , share library and 3rd party library)
    Dealing with bitmap object in android NDK
  • 原文地址:https://www.cnblogs.com/tutao1995/p/8760989.html
Copyright © 2020-2023  润新知