Javascript.RU

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

Подскажите как переделать jquery .animate
как сделать, что бы код1 работал также как код2...в первом все понятно, во втором запутанно. Но второй работает, как надо, а первый не совсем. А конкретно вторая обратная анимация стартует не с конца первой а с нулевой позиции(которая была до старта первой анимации)...Заранее спасибо за помощь новичку







код1:

<!DOCTYPE html>
<html>
    <head>
        <title>title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link href="style.css" rel="stylesheet" type="text/css"/>
        <script src="jq/jquery-1.11.3.js" type="text/javascript"></script>
</head>
<body>

        <div class="item" id="box"> 
            <img src="images/k1.jpg" height="1330" width="991" alt="zz"/>
        </div>


        <script>    
        

        $(document).ready(function(){
          
        $('img').animate({'zoom':0.5,'right':500},{duration:3000}).delay(2000).animate({'zoom':1,'left':500},{duration:3000});  
          
        });
</script>  
</body>
</html>




код2:

<!DOCTYPE html>

<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link href="style.css" rel="stylesheet" type="text/css"/>
        <script src="jq/jquery-1.11.3.js" type="text/javascript"></script>
    </head>
            <body>

            <div class="item" id="box"> <img src="images/k1.jpg" height="1330" width="991" />

            </div>


    <script>    
         var move = 500;
             zoom = 0.4;
             time = 3000;
    

function Func2()
    {

      $('img').animate({'zoom':0.7,'right':move/3},{duration:time});
    }

function Func1()

    {
      setTimeout (function(){
                    Func2()}, 0);

      $('img').animate({'zoom':zoom,'left':move},{duration:time});
    }

 
$(document).ready(function(){
    Func1();
});  
 

    </script>              
    </body>
</html>

Последний раз редактировалось demon407, 02.12.2015 в 15:38.
Ответить с цитированием
  #2 (permalink)  
Старый 02.12.2015, 09:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

demon407,
прочитайте документацию по animate и добавьте вторую анимацию в complete первой
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 02.12.2015, 21:40
Новичок на форуме
Отправить личное сообщение для demon407 Посмотреть профиль Найти все сообщения от demon407
 
Регистрация: 02.12.2015
Сообщений: 8

не работает....не понимаю где ошибка





$(document).ready(function(){
          
        $('img').animate({'zoom':0.5,'right':500},{duration:3000},function(){this.animate({'zoom':1,'left':500},{duration:3000});
        });  
            
        });
Ответить с цитированием
  #4 (permalink)  
Старый 02.12.2015, 21:46
Новичок на форуме
Отправить личное сообщение для demon407 Посмотреть профиль Найти все сообщения от demon407
 
Регистрация: 02.12.2015
Сообщений: 8

и так не работает

$(document).ready(function(){
          
        $('img').animate({'zoom':0.5,'right':500},{duration:3000},{complete:function(){this.animate({'zoom':1,'left':500},{duration:3000});
        }}); 
            
        });
Ответить с цитированием
  #5 (permalink)  
Старый 02.12.2015, 22:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

demon407,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  img {
    position: absolute;
     cursor: pointer;
     left: 0px;
      zoom: 3;
  }

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(window).load(function() {
    $('img').animate({
        'zoom': 0.5,
        'left': 500
    }, {
        duration: 3000,
        complete: function() {
            $(this).animate({
                'zoom': 1,
                'left': 0
            }, {
                duration: 3000
            });
        }
    });



});


  </script>
</head>

<body>

   <img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt="">
</body>

</html>
Ответить с цитированием
  #6 (permalink)  
Старый 03.12.2015, 20:57
Новичок на форуме
Отправить личное сообщение для demon407 Посмотреть профиль Найти все сообщения от demon407
 
Регистрация: 02.12.2015
Сообщений: 8

Спасибо)!...я пробовал, этот код но он не заработал у меня из за таблицы стилей.Благодаря Вам я это сразу увидел.

Последний раз редактировалось demon407, 03.12.2015 в 21:37.
Ответить с цитированием
  #7 (permalink)  
Старый 03.12.2015, 21:20
Новичок на форуме
Отправить личное сообщение для demon407 Посмотреть профиль Найти все сообщения от demon407
 
Регистрация: 02.12.2015
Сообщений: 8

если не сложно может еще подскажете почему при выполнении такого кода:

$(window).load(function() {
          
    $('img').animate({'zoom':0.5,'right':500},{duration:3000});
    $('img').animate({'zoom':1,'left':500},{duration:3000});
    $('img').attr("src","images/k2.jpg") ;
     
    });


анимации проигрываются последовательно, а смена атрибута параллельно?
можно ли это сделать так же удобночитаемо, а не писать в "complete:"?
Ответить с цитированием
  #8 (permalink)  
Старый 03.12.2015, 22:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

demon407,
animate это процесс во времени ... из анимаций формируется очередь ...первый тик анимации выполнился и когда анимация ждёт своего мгновения выполнится снова(спит) браузеру надо чем-то занятся, вот он атрибут и зафигачит и ещё кучу разных дел ... время подошло (будильник брякнул) сдедующий тик анимации и спит отдыхает или чего полезное делает и т.д
нужно окончание анимаци тогда только complete или callback (что тоже самое, только синтаксис другой)

Последний раз редактировалось рони, 03.12.2015 в 22:03.
Ответить с цитированием
  #9 (permalink)  
Старый 03.12.2015, 22:29
Новичок на форуме
Отправить личное сообщение для demon407 Посмотреть профиль Найти все сообщения от demon407
 
Регистрация: 02.12.2015
Сообщений: 8

смысл кажется уловил...это разные потоки...и анимацию1 и анимацию2 он не делит на разные потоки...получается очередь...а вот атрибут он пихает в отдельный поток и получается параллельно....спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как сделать как в JQ? faforty Общие вопросы Javascript 8 14.11.2011 01:35
Подскажите как сделать запускаемые скрипты Sadist_dead Сайт Javascript.ru 4 07.11.2011 21:59
Нужно сделать плавное появление текстового поля как на сайте vkontakte.ru paratrooper1981 Элементы интерфейса 1 23.11.2009 18:24
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56