Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.10.2011, 17:42
Интересующийся
Отправить личное сообщение для swess Посмотреть профиль Найти все сообщения от swess
 
Регистрация: 25.12.2010
Сообщений: 16

не получается зациклить анимацию 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>


цикл отрабатывает вместо пяти, всего один раз.
как сделать чтобы отработал пять раз или бесконечно?

спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 08.10.2011, 17:48
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

function showhide() {
   $("#green").fadeIn(1000, function() {
      $("#green").fadeOut(1000, showhide);
   });
}
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #3 (permalink)  
Старый 08.10.2011, 18:40
Интересующийся
Отправить личное сообщение для swess Посмотреть профиль Найти все сообщения от swess
 
Регистрация: 25.12.2010
Сообщений: 16

да, спасибо, так работает.
только остался открытым вопрос, как ее на $(document).ready(function(){
}); повесить. если просто вставить внутрь не отрабатывает
Ответить с цитированием
  #4 (permalink)  
Старый 08.10.2011, 18:56
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

$(document).ready(function() {
   function showhide() {
      $("#green").fadeIn(1000, function() {
         $("#green").fadeOut(1000, showhide);
      });
   }

   showhide();
});
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #5 (permalink)  
Старый 08.10.2011, 21:53
Интересующийся
Отправить личное сообщение для swess Посмотреть профиль Найти все сообщения от swess
 
Регистрация: 25.12.2010
Сообщений: 16

большое человеческое спасибо =)
Ответить с цитированием
  #6 (permalink)  
Старый 08.10.2011, 22:43
Кандидат Javascript-наук
Отправить личное сообщение для Nightmare Посмотреть профиль Найти все сообщения от Nightmare
 
Регистрация: 16.04.2010
Сообщений: 133

Сообщение от walik Посмотреть сообщение
$(document).ready(function() {
   function showhide() {
      $("#green").fadeIn(1000, function() {
         $("#green").fadeOut(1000, showhide);
      });
   }

   showhide();
});
а избыточности памяти не будет?
Ответить с цитированием
  #7 (permalink)  
Старый 08.10.2011, 23:50
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

из-за рекурсии ?
Ответить с цитированием
  #8 (permalink)  
Старый 25.10.2011, 13:57
Аватар для Андрей38
Профессор
Отправить личное сообщение для Андрей38 Посмотреть профиль Найти все сообщения от Андрей38
 
Регистрация: 11.12.2010
Сообщений: 261

Сообщение от melky Посмотреть сообщение
из-за рекурсии ?
$(document).ready(function() {
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 ?
__________________
http://www.youtube.com/watch?feature...&v=cz0uN1ZNuM0
История не в теории ,а по факту

Последний раз редактировалось Андрей38, 25.10.2011 в 15:33.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 разных модуля на jQuery - как подключить? finder jQuery 4 23.03.2012 22:29
Запретить анимацию на jquery nalezhitiy Events/DOM/Window 5 19.01.2011 20:21
Не получается передать динамическую переменную в Jquery swess jQuery 3 25.12.2010 16:31
jQuery jTreeMenu plugin Seafnox jQuery 9 12.01.2010 21:55
JQuery + FireFox NOOB jQuery 4 02.11.2009 18:16