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 相关文章推荐
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
Apr 08 Javascript
JS解析XML实例分析
Jan 30 Javascript
JavaScript实现仿网易通行证表单验证
May 25 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
Nov 17 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
Jul 05 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
Aug 31 Javascript
微信小程序自定义可滑动日历界面
Dec 28 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 Javascript
微信小程序可滑动月日历组件使用详解
Oct 21 Javascript
Vue中使用matomo进行访问流量统计的实现
Nov 05 Javascript
JS实现随机抽取三人
Nov 06 Javascript
Openlayers+EasyUI Tree动态实现图层控制
Sep 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中用hash实现的数组
2011/07/17 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
php单一接口的实现方法
2015/06/20 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
微信小程序联网请求的轮播图
2017/07/07 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
Angular短信模板校验代码
2020/09/23 Javascript
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
github配置使用指南
2014/11/18 Python
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
python制作小说爬虫实录
2017/08/14 Python
python Pygame的具体使用讲解
2017/11/03 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
2019/09/20 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
Pytorch 卷积中的 Input Shape用法
2020/06/29 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
2014年高二班主任工作总结
2014/12/16 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
2015年办公室文秘工作总结
2015/04/30 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python
React如何创建组件
2021/06/27 Javascript
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python