Сделать повторяющуюся анимацию

0

Я пытаюсь сделать повторяющуюся анимацию с помощью jQuery. Я использовал while цикл с условием, установленным в true, но я думаю, что браузер не нравится.

Каков способ сделать это правильно?

http://jsfiddle.net/8cV2R/2/

$('.test').click(function () {
    while (true) {
        $(this).hide(1000);
        $(this).show(1000);
    }
});
  • 0
    С CSS-анимацией, наверное! Но в противном случае вам нужно будет использовать параметр обратного вызова и запустить там следующую анимацию.
  • 0
    «но я думаю, что браузеру это не нравится». Вы, сэр, сделали мой день, спасибо :)
Теги:
animation
infinite-loop

3 ответа

0
Лучший ответ

Вам нужно написать функцию, которая сама по себе является обратным вызовом. Это то, как вы зацикливаете функцию.

http://jsfiddle.net/8cV2R/8

$('.test').click(fadeIt);

function fadeIt() {
    $('.test').hide(1000, function() {
        $('.test').show(1000, fadeIt);
    });
}
2

Этого должно быть достаточно:

$('.test').click(doMe);

function doMe(){
    $(this).hide(1000).show(1000, doMe);
}

http://jsfiddle.net/8cV2R/7/

jQuery анимация очереди для вас.

0
function h() { $(this).hide(1000, s); };
function s() { $(this).show(1000, h); };
$('.test').click(h);

Пример jsFiddle

Или, без анимации width/height, которая скрывает/показывает, создается при указании продолжительности, поэтому вы получаете больше эффекта blink: пример jsFiddle

Ещё вопросы

Сообщество Overcoder
Наверх
Меню