首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery动画控制头奖html旋转

使用jquery动画控制头奖html旋转
EN

Stack Overflow用户
提问于 2018-01-19 10:31:06
回答 1查看 1.2K关注 0票数 1

我正在使用下面的代码来匹配用户的旋转。这是可行的,但我的问题是,当winner匹配一个数字,自旋旋转仍然结束在一个特定的圆圈之前,为获胜的圆圈添加样式。

我的问题是,不管怎么说,我是否可以让旋转的速度慢下来,落在winner上,这样它就不用跳到停下来后赢的数字了吗?我希望它还在旋转直到落在数字上。

代码语言:javascript
复制
$(function() {

  var current = 1;
  var num = 0;
  var max = $('.jackpot').length + 1;
  var rotate = 5;
  var speed = 80;

  function change() {
    var winner = Math.floor((Math.random() * 12) + 1);
    $('.jack-' + current).toggleClass("active-spin spin-default");
    current++;
    if (current == max) {
      current = 1;
      num++;
    }
    if (num == 3) {
      speed = 160;
    }

    if (num != rotate) {
      setTimeout(function() {
        change()
      }, speed);
    } else {
      $('.jackpot').removeClass("active-spin").addClass("spin-default");
      $('.jack-' + winner).addClass("iswin");
      current = winner;
      num = 0;
    }
  }

  $('.play').click(function(event) {
    $('.jackpot').removeClass("iswin").addClass('spin-default');
    setTimeout(function() {
      change()
    }, speed);
  });
});
代码语言:javascript
复制
.jackpot {
  display: inline-block;
  padding: 10px;
  margin: 10px;
  border-radius: 50%;
  border: 1px solid transparent;
  transition: 0.5s;
}

.spin-default {
  border: 1px solid orange;
  background-color: #eee;
}

.jackpot.active-spin {
  border: 1px solid blue;
  background-color: red;
}

.jackpot.iswin {
  border: 1px solid yellow;
  background-color: green;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
  <table>
    <tr>
      <td>
        <div class="jackpot spin-default jack-1">JK</div>
      </td>
      <td>
        <div class="jackpot spin-default jack-2">TR</div>
      </td>
      <td>
        <div class="jackpot spin-default jack-3">JK</div>
      </td>
      <td>
        <div class="jackpot spin-default jack-4">IC</div>
      </td>
      <td>
        <div class="jackpot spin-default jack-5">JK</div>
      </td>
    </tr>
    <tr>
      <td>
        <div class="jackpot spin-default jack-12">TR</div>
      </td>
      <td></td>
      <td></td>
      <td></td>
      <td>
        <div class="jackpot spin-default jack-6">JK</div>
      </td>
    </tr>
    <tr>
      <td>
        <div class="jackpot spin-default jack-11">TR</div>
      </td>
      <td>
        <div class="jackpot spin-default jack-10">JK</div>
      </td>
      <td>
        <div class="jackpot spin-default jack-9">IC</div>
      </td>
      <td>
        <div class="jackpot spin-default jack-8">JK</div>
      </td>
      <td>
        <div class="jackpot spin-default jack-7">IC</div>
      </td>
    </tr>
  </table>

</div>
<button class="play">PLay</button>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-19 12:12:24

试一试:) lastRound()是您想要的功能。findWinner()是您的代码,就在程序的另一部分。

代码语言:javascript
复制
$(function() {

  var current = 1;
  var num = 0;
  var max = $('.jackpot').length + 1;
  var rotate = 5;
  var speed = 80;
  var winner = 0;

  function change() {
    winner = Math.floor((Math.random() * 12) + 1);
    $('.jack-' + current).toggleClass("active-spin spin-default");
    current++;
    if (current == max) {
      current = 1;
      num++;
    }
    if (num == 3) {
      speed = 160;
    }

    if (num != rotate) {
      setTimeout(function() {
        change()
      }, speed);
    } else {
      current = 1;
     lastRound();
    }
  }

  function lastRound(){

     setTimeout(function() {
       $('.jack-' + current).toggleClass("active-spin spin-default");
       if (current == winner){
         findWinner();
       }else{
         current++;
         lastRound();
       }
      }, speed + current * 20);
    }


     function findWinner(){
     $('.jackpot').removeClass("active-spin").addClass("spin-default");
      $('.jack-' + winner).addClass("iswin");
      current = winner;
      num = 0;
  }

  $('.play').click(function(event) {
    $('.jackpot').removeClass("iswin").addClass('spin-default');
    setTimeout(function() {
      change()
    }, speed);
  });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48338991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档