标签:
一、HTML
1、引入必要的js文件,这个不多说了(注意由于之后要使用angular提供的动画效果和路由效果,所以要引入angular-animate.js和angular-route.js两个文件)
2、body内加入以下代码:
<div class="page {{pageClass}}" ng-view></div>
ng-view不多说,class通过双向绑定的方式,通过controller动态控制class中的{{pageclass}}
另外不要忘了使用模块
<html ng-app="bookStoreApp">
二、Javascript
1、app.js文件
这个是入口文件,代码如下:
var bookStoreApp = angular.module(‘bookStoreApp‘, [
‘ngRoute‘, ‘ngAnimate‘, ‘bookStoreCtrls‘, ‘bookStoreFilters‘,
‘bookStoreServices‘, ‘bookStoreDirectives‘
]);
bookStoreApp.config(function($routeProvider) {
$routeProvider.when(‘/hello‘, {
templateUrl: ‘tpls/hello.html‘,
controller: ‘HelloCtrl‘
}).when(‘/list‘, {
templateUrl: ‘tpls/bookList.html‘,
controller: ‘BookListCtrl‘
}).otherwise({
redirectTo: ‘/hello‘
})
});
首先定义了bookStoreApp模型模型,并添加依赖。之后通过config设定路由,并设定每个路由对应的控制器。
2、controller.js
用来设定控制器,代码如下:
var bookStoreCtrls = angular.module(‘bookStoreCtrls‘, []);
bookStoreCtrls.controller(‘HelloCtrl‘, [‘$scope‘,
function($scope) {
$scope.greeting = {
text: ‘Hello‘
};
$scope.pageClass="hello";
}
]);
bookStoreCtrls.controller(‘BookListCtrl‘, [‘$scope‘,
function($scope) {
$scope.pageClass="list";
}
]);
这里就通过不同控制器下对pageClass变量的设定,实现了样式的切换。
三、CSS
.page {
bottom:0;
padding-top:200px;
position:absolute;
text-align:center;
top:0;
width:100%;
}
.page h1 {
font-size:60px;
}
.page a {
margin-top:50px;
}
.hello {
background:#00D0BC;
color:#FFFFFF;
}
.list{
background:#E59400;
color:#FFFFFF;
}
@-webkit-keyframes rotateFall {
0% {
-webkit-transform: rotateZ(0deg);
}
20% {
-webkit-transform: rotateZ(10deg);
animation-timing-function: ease-out;
}
40% {
-webkit-transform: rotateZ(17deg);
}
60% {
-webkit-transform: rotateZ(16deg);
}
100% {
-webkit-transform: translateY(100%) rotateZ(17deg);
}
}
@-webkit-keyframes slideOutLeft {
to {
-webkit-transform: translateX(-100%);
}
}
@-webkit-keyframes rotateOutNewspaper {
to {
-webkit-transform: translateZ(-3000px) rotateZ(360deg);
opacity: 0;
}
}
@-webkit-keyframes scaleUp {
from {
opacity: 0.3;
-webkit-transform: scale(0.8);
}
}
@-webkit-keyframes slideInRight {
from {
-webkit-transform:translateX(100%);
}
to {
-webkit-transform: translateX(0);
}
}
@-webkit-keyframes slideInUp {
from {
-webkit-transform:translateY(100%);
}
to {
-webkit-transform: translateY(0);
}
}
.ng-enter {
z-index: 8888;
}
.ng-leave {
z-index: 9999;
}
.hello.ng-enter {
-webkit-animation: scaleUp 0.5s both ease-in;
}
.hello.ng-leave {
-webkit-transform-origin: 0% 0%;
-webkit-animation: rotateFall 1s both ease-in;
}
.list.ng-enter {
-webkit-animation:slideInRight 0.5s both ease-in;
}
.list.ng-leave {
-webkit-animation:slideOutLeft 0.5s both ease-in;
}
这里就是基本的CSS3动画定义,没有写其他兼容,这里只针对Chrome。
angular.js提供了ng-enter和ng-leave方法,用于当元素进入、消除时执行动画效果,注意中间无空格。
这样就可以以非常精简的代码实现比较基础的动画效果了
标签:
原文地址:http://my.oschina.net/u/2445805/blog/497670