Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Зацикливание функции setTimeout (https://javascript.ru/forum/misc/58835-zaciklivanie-funkcii-settimeout.html)

рони 13.10.2015 17:03

Цитата:

Сообщение от MininAS
Будет происходить обязательно

это не про вас а про макет caetus,

по ссылке выше универсальная функция для любой анимации и callback
пример на её основе
http://javascript.ru/forum/misc/5707...s=1#post380280

MininAS 13.10.2015 17:06

Цитата:

Сообщение от caetus (Сообщение 391793)
Рони ???
function ani_hide(elm, i, o, func)
{
    // style
    if (o > 0) {o -= 5; setTimeout (function () { ani_hide(elm, i, o, func)}, i);}
    else setTimeout (func, 3000);
}
 
ani_hide(0, 50, 100, function () {flag_DOWN = true;});

Первый запустился, спасибо забыл про вариант завернуть в функцию.
А вот второй нет.

caetus 13.10.2015 17:11

посмотри по ссылке которую кинул Рони , там функция универсальна )))
function ani_hide(elm, i, o, func)
{
    // style
    if (o > 0) {o -= 5; setTimeout (function () { ani_hide(elm, i, o, func)}, i);}
    else setTimeout (func, 3000);
}
 
ani_hide(0, 50, 100, function () {alert(2);}); // 3 с жди

MininAS 13.10.2015 17:17

Цитата:

Сообщение от рони (Сообщение 391802)
это не про вас а про макет caetus,

по ссылке выше универсальная функция для любой анимации и callback
пример на её основе
http://javascript.ru/forum/misc/5707...s=1#post380280

Уже сообразил. По ссылке информацию читаю спасибо.

ruslan_mart 13.10.2015 18:06

Цитата:

Сообщение от рони
css не запустит callback

А что мешает повесить событие transitionend?

рони 13.10.2015 18:12

Ruslan_xDD,
то что это будет уже не css а js :)

рони 13.10.2015 18:21

Ruslan_xDD,
плюс проблема на все анимации классов не напасёшься и прерывание css-анимации выдумывать типа $.stop()

MininAS 13.10.2015 21:28

Не знал про transitionend.
Изучил материал - класненько, все получилось.
Да и классов много не надо можно каждому объекту непосредственно присвоить стиль или создать один класс и присваивать объекту и отбирать назад.
Но все таки почему не работает func ? )

MininAS 14.10.2015 00:01

func то же завернул в функцию:
setTimeout (function () {func();}, 300);

Заработало.
После встал вопрос как в func выполнить действия над объектом и сообразил передать ссылку в функции на объект, в общем надо было так:
function ani_hide(elm, i, o, func)
{
	elm.style.opacity =  (o / 100);
	if (o > 0) {o -= 10; setTimeout (function () {ani_hide(elm, i, o, func);}, i)}
	else setTimeout (function () {func(elm);}, 300);
}

ani_hide(a_block[i], 50, 100, function (elm) 
{
	elm.src = 'img/ball_0.png';
	elm.style.opacity = 1;
	flag_DOWN = true;
});

MininAS 14.10.2015 00:02

Скрип использовал в игре Сфера.
http://matrix-games.ru


Часовой пояс GMT +3, время: 14:00.