Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.01.2012, 12:05
Новичок на форуме
Отправить личное сообщение для ZloiZmei Посмотреть профиль Найти все сообщения от ZloiZmei
 
Регистрация: 28.01.2012
Сообщений: 2

Анимация в цикле с разворотом объекта
Добрый день!

Столкнулся со следующей задачей - сделать анимацию, что бы объект (кораблик) выплывал с одной стороны экрана, заплывал за другую сторону, там разворачивался и плыл обратно.

Написал такую функцию:

<script>
            $(document).ready(function(){
                function motion() {
                    $('#ship').animate({ "right": '+=120%' }, 3600,'linear',
                        function(){
                            $('#ship').toggleClass('ship2');
                            $('#ship').animate({ "right": '-=120%' }, 3600);
                            $('#ship').toggleClass('ship1');
                            motion();
                        }
                    );
                }
                motion();
            });
        </script>

Стиль и html:
<style>
div#ship {
	width: 180px;
	height: 60px;
	position: absolute;
	right: -200;
	top: 155;
}
div.ship1 {
	background: url(../images/ship.png) transparent no-repeat top left; 
}
div.ship2 {
	background: url(../images/ship2.png) transparent no-repeat top left; 
}
</style>
<div id="ship" class="ship1"></div>


Всё работает, за исключением того, что корабль разворачивается через раз - периодически плывет задним ходом.
Мне кажется, я уже все варианты расположения функций перепробовал - проблема остается. Иногда появляются новые...

Может кто-то сможет с этим справиться?
Ответить с цитированием
  #2 (permalink)  
Старый 28.01.2012, 13:08
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

$(document).ready(function(){
                function motion() {

                    $('#ship').removeClass('ship2').addClass('ship1').animate({ "right": '+=120%' }, 3600,'linear',
                        function(){
                            $('#ship').removeClass('ship1').addClass('ship2').animate({ "right": '-=120%' }, 3600, motion);
                        }
                    );
                }
                motion();
            });
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #3 (permalink)  
Старый 30.01.2012, 12:23
Новичок на форуме
Отправить личное сообщение для ZloiZmei Посмотреть профиль Найти все сообщения от ZloiZmei
 
Регистрация: 28.01.2012
Сообщений: 2

Работает! Благодарю!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
анимация объекта Роман Валерьевич Flash 4 25.10.2011 11:34
Скрипт вычисления координат объекта banderasantonio197555 Events/DOM/Window 4 16.08.2011 17:37
анимация движения объекта по прямой YISHIMITSY Элементы интерфейса 6 04.03.2010 15:47
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00
Не работает перебор свойств объекта BANick Общие вопросы Javascript 1 16.09.2008 22:46