javascript - 使用jquery动画控制大奖html旋转

标签 javascript jquery html css jquery-animate

我使用下面的代码来匹配用户旋转。它正在工作,但我的问题是,当获胜者匹配一个数字时,在添加获胜圆圈的样式之前,旋转旋转仍然以特定圆圈结束。

我的问题,有没有办法让旋转速度减慢并落在获胜者上,这样它在停止后就不必跳到获胜的数字?我希望它仍然旋转,直到落在数字上。

$(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);
  });
});
.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;
}
<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>

最佳答案

试试这个:) lastRound() 是您想要的功能。 findWinner() 是您的代码,位于程序的另一部分。

$(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);
  });
});

关于javascript - 使用jquery动画控制大奖html旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48338991/

相关文章:

javascript - React-Native headless (headless)怀疑

jquery - jquery 滚动函数

javascript - 悬停文本时的 jQuery 工具提示

css - 子 div 延伸出父 div

javascript - 如何关闭此 jQuery Toggle 函数

javascript - 重新应用运行示例厨房水槽应用程序时出错

javascript - 在 1 个 DIV 中通过 CSS 实现多个页脚/页眉

javascript - Jquery 每个表 - 使用 Ajax 隐藏显示

html - 表格单元格内的 CSS 缩放和 div 对齐

javascript - 在类中查找链接的 href