Js скрипт в цикле (с использованием Jquery)

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем EmptyR, 30 апр 2011.

  1. EmptyR

    EmptyR Веб мастер

    Регистрация:
    6 окт 2010
    Сообщения:
    221
    Симпатии:
    0
    Заказчик попросил реализовать следующую идею: автобус, перемещающийся вправо-влево. Вот мой код реализации:
    Код (Text):
    <script type="text/javascript">
    jQuery(document).ready(function(){
    while (true){
    jQuery("div#bus").animate({left: '+=600'}, 5000, 'linear', function(){
    jQuery("div#bus").animate({'opacity':0}, 1000, 'linear', function(){
    jQuery("div#bus").css('background-image', 'url(http://site.ru/bus_left.png)');
    jQuery("div#bus").animate({'opacity':1}, 1000, 'linear');
    jQuery("div#bus").animate({left: '-=600'}, 5000, 'linear');
    jQuery("div#bus").animate({'opacity':0}, 1000, 'linear', function(){
    jQuery("div#bus").css('background-image', 'url(http://site.ru/bus_right.png)');
    jQuery("div#bus").animate({'opacity':1}, 1000, 'linear');
    });
    });
    });
    }
    });
    </script>
    Вкратце: автобус перемещается в крайнюю правую позицию, исчезает, меняет картинку на повернутый влево, снова появляется, передвигается в левую крайнюю позицию, там снова исчезает, меняет картинку на повернутый вправо, снова появляется.

    Почему то такой код не работает в цикле, точнее зависает, что не так?
     
  2. AndrewSpider

    AndrewSpider Гость

    В ajax не силён, но не пробывали ставить не бесконечный цикл, а например таймер? setTimeout
     
  3. EmptyR

    EmptyR Веб мастер

    Регистрация:
    6 окт 2010
    Сообщения:
    221
    Симпатии:
    0
    В принципе решил проблему. Поделюсь с народом, как это делается...

    Шаблон примерно таков:
    Код (Text):
    <script type="text/javascript">
    jQuery(document).ready(function(){
    function runIt(){
    //Некоторый JQuery код
    jQuery("нечто").функция(параметр1, параметр2, параметр_n, runIt);
    }
    runIt();
    });
    </script>
    Задумка в следующем, что весь наш код, который мы хотим повторять, можно вставить в функцию, например, с названием RunIt. Внутри функции вставляем свой код. В последней строчки кода, добавляем в качестве функции, вызываемой по завершению этой последней строчки - нашу функцию RunIt. Для того, чтобы началось выполнение этой функции, после описания функции RunIt вставляем её вызов.
    Таким образом, при инициализации DOM макета (благодаря функции ready) инициализируется функция RunIt и когда она внутри себя находит вызов себя же, всё начинается с начала. И это без необходимости использовать цикл While.

    P.S.: Спасибо хорошим людям, дали ссылку на пример: http://www.linkexchanger.su/jquery_effects/queue.html
     
Загрузка...
Похожие Темы - скрипт цикле (с
  1. amstrot
    Ответов:
    1
    Просмотров:
    74
  2. nml
    Ответов:
    2
    Просмотров:
    147
  3. anon
    Ответов:
    0
    Просмотров:
    394
  4. serauto79
    Ответов:
    1
    Просмотров:
    866
  5. deeeman
    Ответов:
    1
    Просмотров:
    743

Поделиться этой страницей