angular2系列之路由转场动画的示例代码


Posted in Javascript onNovember 09, 2017

Angular2的动画系统赋予了制作各种动画效果的能力,致力于构建出与原生CSS动画性能相同的动画。

Angular2的动画主要是和@Component结合在了一起。

animations元数据属性在定义@Component装饰。就像template元数据属性!这样就可以让动画逻辑与其应用代码紧紧集成在一起,这让动画可以更容易的出发与控制。

一.在app.mudule.ts中引入:

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

并在@NgModule中的imports添加:

imports: [BrowserAnimationsModule],

二.创建文件定义名为animations.ts用来书写转场动画

import { animate, AnimationEntryMetadata, state, style, transition, trigger } from'@angular/core';
// Component transition animations
export const slideInDownAnimation: AnimationEntryMetadata =
// 动画触发器名称
trigger('routeAnimation', [
  state('*',
    style({
      opacity: 1,
      transform: 'translateX(0)'
    })
  ),
  transition(':enter', [
    style({
      opacity: 0,
      transform: 'translateX(-100%)'
    }),
    animate('0.2s ease-in')
  ]),
  transition(':leave', [
    animate('0.5s ease-out', style({
      opacity: 0,
      transform: 'translateY(100%)'
    }))
  ])
]);

三.在需要添加转场动画的页面操作

引入import {HostBinding } from '@angular/core';(如果引入过直接将HostBinding添加进去就好,不要重复引入,多嘴了...)

再引入你写好的动画模板:import { slideInDownAnimation } from '../animation';

在@Component中添加:animations:[slideInDownAnimation],

最后:

// 添加@HostBinding属性添加到类中以设置这个路由组件元素的动画和样式
  @HostBinding('@routeAnimation') routeAnimation = true;
  @HostBinding('style.display') display = 'block';
  @HostBinding('style.position') position = 'absolute';

四.至此你可以去浏览器看看效果了,如果没有错误

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js获取图片长和宽度的代码
Nov 24 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
Jun 05 Javascript
ExpressJS入门实例
Jan 14 Javascript
基于javascript制作微博发布栏效果
Apr 04 Javascript
详解JS中的快速排序与冒泡
Jan 10 Javascript
浅谈vue-cli 3.0.x 初体验
Apr 11 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
Nov 05 Javascript
详解vantUI框架在vue项目中的应用踩坑
Dec 06 Javascript
JQuery Ajax执行跨域请求数据的解决方案
Dec 10 jQuery
手把手15分钟搭一个企业级脚手架
Sep 16 Javascript
javascript实现异形滚动轮播
Nov 28 Javascript
vue浏览器返回监听的具体步骤
Feb 03 Vue.js
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
Nov 09 #Javascript
基于vue配置axios的方法步骤
Nov 09 #Javascript
微信小程序倒计时功能实现代码
Nov 09 #Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
Nov 09 #jQuery
微信小程序获取手机号授权用户登录功能
Nov 09 #Javascript
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 #jQuery
webpack中CommonsChunkPlugin详细教程(小结)
Nov 09 #Javascript
You might like
apache rewrite_module模块使用教程
2008/01/10 PHP
PHP HTML代码串截取代码
2008/12/29 PHP
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
php object转数组示例
2014/01/15 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
动手学习无线电
2021/03/10 无线电
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
2009/12/04 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
微信小程序mpvue点击按钮获取button值的方法
2019/05/29 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
Python数据类型中的“冒号“[::]——分片与步长操作示例
2018/01/24 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
Python如何读取、写入CSV数据
2020/07/28 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
大专自我鉴定范文
2013/10/23 职场文书
学习雷锋月活动总结
2014/07/03 职场文书
印刷技术专业自荐信
2014/09/18 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
丽江古城导游词
2015/02/03 职场文书
环卫个人总结
2015/03/03 职场文书