Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.01.2015, 15:59
Интересующийся
Отправить личное сообщение для Hadouken Посмотреть профиль Найти все сообщения от Hadouken
 
Регистрация: 24.12.2014
Сообщений: 14

старт и стоп анимации при повторных кликах
Всем привет! Пользуюсь плагином jQueryRotate, не получается реализовать, чтобы при клике запускалась анимация, а при повторном клике останавливалась и если нажать еще раз, то начать с того же места. Подскажите, пожалуйста, как мне это сделать? в Javascript не силен, пробовал через bind и unbind, но ничего не получается она работает правильно только на наведение мышью
Вот мой код
var value = 0;
$("#image").rotate({
    bind: {
        mouseover: function rotation() {
            value += 360;
            $(this).rotate({
                animateTo: value,
                callback:rotation,
                easing: function (x,t,b,c,d){ 
                    return c*(t/d)+b;}
            })
        },
        mouseout:function rotation(){
           setTimeout(function(){
                          $("#image").stopRotate();
                      }, 100);
        }
    }

Последний раз редактировалось Hadouken, 11.01.2015 в 16:23.
Ответить с цитированием
  #2 (permalink)  
Старый 11.01.2015, 19:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Hadouken,
может css3
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 img {
    -webkit-animation: play 1s infinite ;
       -moz-animation: play 1s infinite;
         -o-animation: play 1s infinite;
            animation: play 1s infinite  ;
}
.paused{
    -webkit-animation-play-state:paused;
    -moz-animation-play-state:paused;
    -o-animation-play-state:paused;
    animation-play-state:paused;
}

@-webkit-keyframes play {
    from {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }

}

@-moz-keyframes play {
   from {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }

}


@-o-keyframes play {
    from {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }

}

@keyframes play {
   from {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }

}
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

  <script>
    $(function () {

$("#image").click(function() {
 $(this).toggleClass("paused")
})
    });
  </script>
</head>
<body>
<img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" id="image" class="paused">
</body>
</html>

Последний раз редактировалось рони, 11.01.2015 в 19:04.
Ответить с цитированием
  #3 (permalink)  
Старый 11.01.2015, 20:07
Интересующийся
Отправить личное сообщение для Hadouken Посмотреть профиль Найти все сообщения от Hadouken
 
Регистрация: 24.12.2014
Сообщений: 14

рони,
спасибо! отличная идея)
Ответить с цитированием
  #4 (permalink)  
Старый 11.01.2015, 20:36
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Если jquery только для этого - можно выкинуть ее нафиг:


image.onclick = function() {
 this.classList.toggle('paused');
};


И скачать с инета и подключить classList.js polyfill
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заблокировать отмену анимации GIF при нажатии на ESC? kaf Events/DOM/Window 9 13.01.2013 12:48
обработка клика мыши при анимации stalker77 jQuery 5 30.10.2011 22:15
jQuery Использование textIndent при анимации slim-v Opera, Safari и др. 26 19.12.2010 18:16
clearInterval при окончании анимации UnderShot Общие вопросы Javascript 2 19.11.2010 20:30
Сглаживание при анимации everm1nd Общие вопросы Javascript 4 24.08.2009 19:01