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中清空数组的三种方法分享
Apr 07 Javascript
Angularjs制作简单的路由功能demo
Apr 14 Javascript
温习Javascript基础语法之词法结构
May 31 Javascript
jQuery层级选择器实例代码
Feb 06 Javascript
利用js判断手机是否安装某个app的多种方案
Feb 13 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
Apr 03 jQuery
基于VUE选择上传图片并页面显示(图片可删除)
May 25 Javascript
Angular学习教程之RouterLink花式跳转
May 03 Javascript
用vue快速开发app的脚手架工具
Jun 11 Javascript
打通前后端构建一个Vue+Express的开发环境
Jul 17 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
Oct 19 Javascript
简单了解JavaScript arguement原理及作用
May 28 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图片验证码代码
2008/03/27 PHP
phpMyAdmin2.11.6安装配置方法
2008/08/24 PHP
php代码收集表单内容并写入文件的代码
2012/01/29 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
javascript replace方法与正则表达式
2008/02/19 Javascript
小型js框架veryide.librar源代码
2009/03/05 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
2016/01/28 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
vue模块移动组件的实现示例
2020/05/20 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
2020/08/10 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
python interpolate插值实例
2020/07/06 Python
CSS3实现文本垂直排列的方法
2018/07/10 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
2015入党自荐书范文
2015/03/05 职场文书
环保建议书作文500字
2015/09/14 职场文书
军训决心书范文
2015/09/22 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
MySQL中日期型单行函数代码详解
2021/06/21 MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL
JavaScript实现优先级队列
2021/12/06 Javascript