старт и стоп анимации при повторных кликах
Всем привет! Пользуюсь плагином 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,
может 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>
|
рони,
спасибо! отличная идея) |
Если jquery только для этого - можно выкинуть ее нафиг:
image.onclick = function() {
this.classList.toggle('paused');
};
И скачать с инета и подключить classList.js polyfill |
| Часовой пояс GMT +3, время: 21:24. |