Próbuję zastosować różne transformacje do danego elementu lub zestawu elementów, klikając przyciski, aby włączać i wyłączać klasy. Działa to dla większości rzeczy, ale nie wtedy, gdy próbuję przełączać się na więcej niż jedną transformację rotacyjną. Gdy element ma dwie osobne klasy przekształcania rotacji (rotateX, rotateZ), transformacje przestają działać zgodnie z oczekiwaniami.W jaki sposób mogę jednocześnie zastosować wiele transformacji obracania za pomocą przełączania klas?
Proszę zobaczyć mój przykład tutaj: http://jsfiddle.net/XTVd7/9/
CSS
#box {
width: 100px;
height: 100px;
border: 1px solid blue;
transition: all 1s;
}
.flip {
-webkit-transform: rotateX(360deg);
-moz-transform: rotateX(360deg);
-ms-transform: rotateX(360deg);
-o-transform: rotateX(360deg);
}
.spin {
-webkit-transform: rotateZ(360deg);
-moz-transform: rotateZ(360deg);
-ms-transform: rotateZ(360deg);
-o-transform: rotateZ(360deg);
}
jQuery
$("#flipBtn").on("click", function() {
$("#box").toggleClass("flip");
});
$("#spinBtn").on("click", function() {
$("#box").toggleClass("spin");
});
będę oczekiwać, że mogę odwrócić lub wirowania pola w każdej chwili przez włączanie lub wyłączanie dowolnej z tych klas. Nie dotyczy to sytuacji, gdy obie klasy zostały do niej dodane.
wierzę, że to dlatego, że oboje starają się ożywić tę samą właściwość CSS (-webkit-transform), a więc starają się "przejście" od rotateX (360deg), aby obrócićZ (360deg) lub odwrotnie, nie działa. To powiedziawszy, sprawdź to skrzypce, które ma różne wartości dla każdej właściwości i wydaje się działać: http://jsfiddle.net/cypY4/ – justis
Interesujące. Jesteś na czymś, ale zauważysz, że transformacje nadal będą zawieszane, jeśli raz się odwrócisz, a następnie zakręcisz raz. Zaktualizowałem również mój przykład, ponieważ zamierzałem użyć "all" zamiast "-webkit-transform". – blackcadillax