我想用ng-animate和ng-view來獲得3D立體效果動畫。AngularJS:使用ng-animate&ng-view,如何製作3D立方體旋轉效果?
當我切換到另一個頁面時,我想感覺我正在旋轉一個立方體。 當我點擊「Go Page 2」時,實際的「Page 1」會離開並向左旋轉,而「Page 2」會從右側到達。
我已經接近了一些東西,但是真的很髒的CSS轉換,當我切換頁面時,它們不會「粘」在一起。
代碼示例:http://jsfiddle.net/bnyJ6/
我已經試過這樣:
HTML:
<style ng-bind-html-unsafe="style"></style>
<div class="cube container">
<div ng-view ng-animate="{enter: 'animate-enter', leave: 'animate-leave'}" ></div>
</div>
<script type="text/ng-template" id="page1.html">
<div class="container " >
<div class="masthead">
<h1 class="muted">PAGE 1</h1>
<button class="btn display-button" ng-click="direction('front');go('/two')">Go Page 2</button>
</div>
</div>
</script>
<script type="text/ng-template" id="page2.html">
<div class="container " >
<div class="masthead">
<h1 class="muted">PAGE 1</h1>
<button class="btn display-button" ng-click="direction('back');go('/one')" >Go page 1</button>
</div>
</div>
</script>
角JS:
var app = angular.module('demo', []);
app.config(function ($routeProvider) {
$routeProvider
.when('/one', {
templateUrl:'page1.html'
})
.when('/two', {
templateUrl:'page2.html'
})
.otherwise({
redirectTo:'/one'
});
});
app.controller('MainCtrl', function($scope, $rootScope, $location) {
$scope.go = function(path) {
$location.path(path);
}
});
CSS3-Dirty-動畫:
.animation{
-webkit-perspective:2000px;
-moz-perspective:2000px;
-o-perspective: 2000px;
perspective: 2000px;
}
.cube {
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
-o-transform-style: preserve-3d;
transform-style: preserve-3d;
position: relative;
}
.animate-enter,
.animate-leave {
-webkit-transition: 3000ms linear all;
-moz-transition: 3000ms linear all;
-ms-transition: 3000ms linear all;
-o-transition: 3000ms linear all;
transition: 3000ms linear all;
position: absolute;
}
.animate-enter {
background-color:green;
-webkit-transform: rotateY( 90deg) translateZ(600px) translateX(585px) ;
-moz-transform: rotateY( 90deg) translateZ(600px) translateX(585px);
-o-transform: rotateY( 90deg) translateZ(600px) translateX(585px);
transform: rotateY( 90deg) translateZ(600px) translateX(585px);
opacity: 0;
}
.animate-enter.animate-enter-active{
background-color:yellow;
-webkit-transform: rotateY( 0deg) translateX(250px) translateZ(400px);
-moz-transform: rotateY( 0deg) translateX(250px) translateZ(400px);
-o-transform: rotateY( 0deg)translateX(250px) translateZ(401px);
transform: rotateY( 0deg) translateX(250px) translateZ(400px);
opacity: 1;
}
.animate-leave {
background-color:gray;
-webkit-transform: rotateY( -90deg) translateZ(361px);
-moz-transform: rotateY( -90deg) translateZ(361px);
-o-transform: rotateY(-90deg) translateZ(361px);
transform: rotateY(-90deg) translateZ(361px);
opacity: 0;
}
你有任何想法如何得到這個3D魔方效果動畫?
感謝您提供的各種幫助。
哇!太棒了 !非常感謝 !!您的意見非常有幫助!我找不到技巧和解釋方式,一切都變得清晰起來! – simval