У меня есть jQuery анимация, которая вращает объект при каждом нажатии. Цель анимации проста, при нажатии повернуть объект на 360 градусов в течение определенного периода времени. Затем при следующем нажатии поверните его в противоположном направлении на 360 градусов.
Мой текущий код, кажется, делает это хорошо на первых двух щелчках, но после этого он начинает вращаться больше раз с каждым щелчком.
Я хотел бы знать, почему это происходит, как исправить это с помощью тот же общий подход и, наконец, другие предложения об альтернативных способах получения желаемого эффекта, что может быть проще, но, пожалуйста, сначала ответьте на оригинальные вопросы.
Код можно увидеть по адресу: codepen
Часть jQuery показана ниже:
var settingSpun = false;
$('#foo').on('click',function(){
if(settingSpun == false){
settingSpun = true;
$('#foo').animate({ borderSpacing: -360 }, {
step: function(now,fx) {
$(this).css('-webkit-transform','rotate('+now+'deg)');
$(this).css('-moz-transform','rotate('+now+'deg)');
$(this).css('transform','rotate('+now+'deg)');
},
duration:'slow'
},'linear');
}
else{
settingSpun = false;
$('#foo').animate({ borderSpacing: 360 }, {
step: function(now,fx) {
$(this).css('-webkit-transform','rotate('+now+'deg)');
$(this).css('-moz-transform','rotate('+now+'deg)');
$(this).css('transform','rotate('+now+'deg)');
},
duration:'slow'
},'linear');
}
});