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 相关文章推荐
javascript 词法作用域和闭包分析说明
Aug 12 Javascript
JS获取页面input控件中所有text控件并追加样式属性
Feb 25 Javascript
JS读写CSS样式的方法汇总
Aug 16 Javascript
真正好用的js验证上传文件大小的简单方法
Oct 27 Javascript
vue.js实现条件渲染的实例代码
Jun 22 Javascript
Vue之Watcher源码解析(2)
Jul 19 Javascript
深入探究AngularJs之$scope对象(作用域)
Jul 20 Javascript
js注册时输入合法性验证方法
Oct 21 Javascript
JS查找孩子节点简单示例
Jul 25 Javascript
ionic+html5+API实现双击返回键退出应用
Sep 17 Javascript
weui中的picker使用js进行动态绑定数据问题
Nov 06 Javascript
vue通过接口直接下载java生成好的Excel表格案例
Oct 26 Javascript
使用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
PHP+DBM的同学录程序(5)
2006/10/09 PHP
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
php实现约瑟夫问题的方法小结
2015/03/23 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
学习AngularJs:Directive指令用法(完整版)
2016/04/26 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
js中的面向对象入门
2017/03/06 Javascript
利用js编写网页进度条效果
2017/10/08 Javascript
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
详解从react转职到vue开发的项目准备
2019/01/14 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
用Python抢过年的火车票附源码
2015/12/07 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
深入了解Python在HDA中的应用
2019/09/05 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
Python ellipsis 的用法详解
2020/11/20 Python
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
澳大利亚运动鞋商店:Platypus Shoes
2019/09/27 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
学校介绍信范文
2014/01/14 职场文书
运动会开幕式解说词
2014/02/05 职场文书
户外活动策划方案
2014/03/12 职场文书
故意伤害辩护词
2015/05/21 职场文书
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS