У меня возникла проблема с анимацией преобразования rotateX и rotateY. Я использую плагин GSAP jQuery.
В основном это выполняется:
$(element).animate({transform: "rotateX(-180deg)"});
имеет тот же эффект, что и выполнение:
$(element).animate({transform: "rotateX(180deg)"});
У меня есть перспектива, если вам интересно.
Есть ли особый способ определить отрицательные значения или это ошибка?
ОБНОВЛЕНИЕ: я нашел здесь свойство shortRotationX и shortRotationY: http://codepen.io/GreenSock/pen/ydIgf
Однако это, по-видимому, временное решение. Я хотел бы знать, каков правильный способ анимации вращения с помощью jQuery + GSAP. Спасибо вам, ребята! Kyryll
Это было дано на форумах GreenSock по адресу http://forums.greensock.com/topic/9099-cannot-animate-rotate-negative-jquery-gsap/#entry36552
Вращение 180 идентично вращению -180 в терминах матрицы преобразования браузера (используйте getComputedStyle(), чтобы убедиться сами), поэтому нет никакого способа по-настоящему различить разницу, если вы не используете свойства собственного преобразования GSAP, такие как "rotationX "поворот", "поворот" и т.д. Когда вы это сделаете, GSAP сможет правильно отслеживать все. Плюс он более оптимизирован для скорости. Так:
//OLD
$(element).animate({transform: "rotateX(-180deg)"});
//NEW
$(element).animate({rotationX:-180});
//or use GSAP native API:
TweenLite.to("#element", 0.4, {rotationX:-180});
Кроме того, "shortRotationX" устаревает с тех пор, как мы вышли с DirectionalRotationPlugin, который использует более интуитивный синтаксис, который также можно использовать для указания движения по часовой стрелке или против часовой стрелки:
//OLD
{shortRotationX:-180}
//NEW
{rotationX:"-180_short"}
//and to specify a clockwise direction:
{rotationX:"-180_cw"}
//or counter-clockwise:
{rotationX:"-180_ccw"}
Он должен иметь тот же эффект. Поворот объекта на 180 градусов будет отображаться таким же образом, как он будет отображаться, если вы повернете его -180 градусов.
Я сделал вам простой пример, если он очистит вас:
Скрипт здесь (только HTML и CSS), чтобы вы могли видеть, что он имеет тот же эффект.
div {
width:200px;
}
#rotate1 {
height:100px;
background-color:yellow;
/* Rotate div */
transform:rotate(180deg);
-ms-transform:rotate(180deg); /* IE 9 */
-webkit-transform:rotate(180deg); /* Opera, Chrome, and Safari */
}
#rotate2 {
height:100px;
background-color:red;
/* Rotate div */
transform:rotate(-180deg);
-ms-transform:rotate(-180deg); /* IE 9 */
-webkit-transform:rotate(-180deg); /* Opera, Chrome, and Safari */
}