2015-07-19 3 views
0

Я занимаюсь анимацией для скачек на практике. Я хочу изменить скорость divs каждые 100 миллисекунд, и каждый div должен иметь разные скорости. Следующий код не работает, как я ожидал.Обновить скорость анимации во время анимации

var v = setInterval(function() { 

     v = Math.floor(Math.random() * (9000 - 2000 + 1)) + 2000; 

     return v; 

    }, 500) 



$("#start").click(function() { 

    $("#karauzum").animate({left: "400px"}, v, function() { 

     list.push("karauzum"); 

    }); 

    $("#gelibolu").animate({left: "400px"}, v, function() { 

     list.push("gelibolu"); 

    }); 

    $("#yalnizefe").animate({left: "400px"}, v, function() { 

     list.push("yalnizefe"); 

    }); 

    $("#ucanoglu").animate({left: "400px"}, v, function() { 

     list.push("ucanoglu"); 

    }); 

Btw полная страница находится здесь: http://kilavuzbaykus.com/atyarisi.html

+0

Возврат значения из функции, вызываемой с setInterval не будет работать. Просмотрите функции обратного вызова. – m69

ответ

0

JQuery анимации-Function сохраняет скорость по значению, а не по ссылке, так что вы не можете изменить его в середине исполнения. Однако вы можете ненадолго остановить анимацию и перезапустить ее новыми значениями.

Вы можете найти хорошее объяснение здесь: https://stackoverflow.com/a/14673731/4780390

Смежные вопросы