Как сделать анимацию элемента?
Привет всем. Хочу, чтобы при клике по div-у каждые 200 мс изменялся его цвет. Цвет меняется, но только один раз. Что не так?
$('div').click(function(){ for(var i=1; i<100; i++){ setTimeout(function(){ $('div').css("background-color","RGB("+i+",200,15)"); },200); } }); |
|
Dimaz,
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <script src="http://code.jquery.com/jquery-latest.js"></script> <script> $(function(){ $('div').click(function(){ for(var i=1; i<256; i++){ setTimeout(function(x){ return function() {$('div').css("background-color","RGB("+x+",200,15)").html(x) }}(i),200*i) } }); }); </script> </head> <body> <div style="width:330px;height:100px;">click</div> </body> </html> |
Цитата:
|
Спасибо большое:)
|
Цитата:
|
Dimaz,
В вашем случае i всегда 99 было и все таймеры на одно и тоже время.срабатывал первый таймер, а все остальные уже ничего не меняли. |
Часовой пояс GMT +3, время: 07:07. |