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,ASP.NET)
Jan 07 Javascript
用js闭包的方法实现多点标注冒泡示例
May 29 Javascript
JavaScript函数详解
Feb 27 Javascript
javascript计时器详解
Feb 28 Javascript
jquery实现从数组移除指定的值
Jun 24 Javascript
JavaScript操作select元素和option的实例代码
Jan 29 Javascript
JS实现添加,替换,删除节点元素的方法
Jun 30 Javascript
js自定义trim函数实现删除两端空格功能
Feb 09 Javascript
vue组件实现弹出框点击显示隐藏效果
Oct 26 Javascript
js实现ATM机存取款功能
Oct 27 Javascript
vue中使用[provide/inject]实现页面reload的方法
Sep 30 Javascript
React服务端渲染原理解析与实践
Mar 04 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
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
php实现约瑟夫问题的方法小结
2015/03/23 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
2014/07/18 Javascript
jQuery中$(function() {});问题详解
2015/08/10 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
从vue源码看props的用法
2019/01/09 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
python实现udp传输图片功能
2020/03/20 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
作风建设演讲稿
2014/05/23 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
家长会标语
2014/06/24 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android