У меня есть игры в рулетку, которая выглядит следующим образом: Javascript анимировать dosnt петля
Я хочу это, чтобы замедлить все больше и больше чем дальше, так что у меня есть этот код:
$(document).ready(function() {
$("button").click(function() {
var moveTime = Math.floor(Math.random() * 1000) + 2000
var slowDown = 1000;
while (moveTime > 0) {
$("div").animate({
left: slowDown + "px"
});
if (slowDown > 0) {
slowDown--;
moveTime = 0;
}
slowDown--;
moveTime--;
}
});
});
div {
position: absolute;
float: left;
margin: 0 0 0 -8400px;
width: 10000px;
height: 100px;
background: repeating-linear-gradient(90deg, #DF0000, #DF0000 100px, #000000 100px, #000000 200px)
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Start Animation</button>
<div></div>
Но проблема в том, что он воспроизводит только анимацию 1 раз. Я также пробовал с infinityloop, но это тоже не работает, так же, как при нажатии кнопки дважды ничего не происходит во второй раз.
Не могли бы вы, возможно, дать нам некоторые из ваших HTML таким образом, мы можем повторить все это? – Denocle
http://pastebin.com/AxZL3PmD – Patte
'if (slowDown> 0) {' всегда верно в первый раз через такое 2-е время 'while (moveTime> 0) {' is false. Итак, всего одна итерация цикла. Вместо этого цикла вы можете использовать 'setInterval' или' setTimeout'. –