не получается зациклить анимацию jquery
не получается зациклить функцию, может быть в jquery есть какие-то специальные способы вроде loop или тп?
для примера - кусочек простого кода - зеленый блок появляется и через некоторое время исчезает. <style> #green { width:100px; height:100px; background-color:#006600; display:none; } </style> <script src="jquery.js"></script> <script type="text/javascript"> for (i = 0; i < 5; i++) { $("#green").fadeIn(1000); setTimeout( function() { $("#green").fadeOut(1000); }, 1000); } </script> <div id="green"></div> цикл отрабатывает вместо пяти, всего один раз. :-? как сделать чтобы отработал пять раз или бесконечно? спасибо |
function showhide() { $("#green").fadeIn(1000, function() { $("#green").fadeOut(1000, showhide); }); } |
да, спасибо, так работает.
только остался открытым вопрос, как ее на $(document).ready(function(){ }); повесить. если просто вставить внутрь не отрабатывает |
$(document).ready(function() { function showhide() { $("#green").fadeIn(1000, function() { $("#green").fadeOut(1000, showhide); }); } showhide(); }); |
большое человеческое спасибо =)
|
Цитата:
|
из-за рекурсии ?
|
Цитата:
function showhide() { $("#green").fadeIn(1000, function() { $("#green").fadeOut(1000, showhide); }); } showhide(); }); Я использовал эту идею зацикливания вместо циклов, но увидев Ваше сообщение , я решил переспросить у Вас,что такое рекурсия и если пройденная анимация засоряет память,кеш и тд. то КАК ЭТО ОЧИЩАТЬ ? Про return false я практически ничего не знаю ,но if ($('"#green":hidden').length==1 ){ return false} так правильнее будет? ...Или это все дело запихнуть в цикл и брикнуть когда $('"#green":hidden').length==1 ??? ...А еще назрел вопрос. Какая логика будет быстрее _УДАЛИТЬ ДИВ из линейки дивов ПО ЗАВЕРШЕНИИ ЕГО СКРЫТИЯ те $(this).hide(20,function(){$(this).remove()} ) ИЛИ УДАЛИТЬ ВСЕ CКРЫТЫЕ ДИВЫ ОПТОМ ПО ДОСТИЖЕНИИ ЧИСЛА ВИДИМЫХ==0 ? |
Часовой пояс GMT +3, время: 21:12. |