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操作html控件实例(javascript添加html)
Dec 02 Javascript
js replace替换所有匹配的字符串
Feb 13 Javascript
Extjs grid panel自带滚动条失效的解决方法
Sep 11 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
Feb 14 Javascript
js添加绑定事件的方法
May 15 Javascript
利用node.js搭建简单web服务器的方法教程
Feb 20 Javascript
简单谈谈js的数据类型
Sep 25 Javascript
微信小程序tabBar用法实例详解
Dec 04 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
May 30 jQuery
使用vue实现各类弹出框组件
Jul 03 Javascript
微信小程序仿今日头条导航栏滚动解析
Aug 20 Javascript
详细分析Node.js 多进程
Jun 22 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模块 Memcached功能多于Memcache
2011/06/14 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
详解webpack介绍&安装&常用命令
2017/06/29 Javascript
vue复合组件实现注册表单功能
2017/11/06 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
使用python在本地电脑上快速处理数据
2017/06/22 Python
Django中使用Celery的方法示例
2018/11/29 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
python应用Axes3D绘图(批量梯度下降算法)
2020/03/25 Python
python从PDF中提取数据的示例
2020/10/30 Python
python实现三种随机请求头方式
2021/01/05 Python
使用豆瓣源来安装python中的第三方库方法
2021/01/26 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
使用CSS3制作饼状旋转载入效果的实例
2015/06/23 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
傲盾软件面试题
2015/08/17 面试题
颁奖典礼主持词
2014/03/25 职场文书
安全技术说明书
2014/05/09 职场文书
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python
pyqt5蒙版遮罩mask,setmask的使用
2021/06/11 Python
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android