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的eval JSON object问题
Nov 15 Javascript
JavaScript 面向对象之命名空间
May 04 Javascript
web css实现整站样式互相切换
Oct 29 Javascript
js中settimeout方法加参数
Feb 28 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
Apr 28 Javascript
AngularJS ng-bind-template 指令详解
Jul 30 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
Sep 21 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
Jun 17 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
Jun 28 Javascript
原生JS实现图片懒加载之页面性能优化
Apr 26 Javascript
JS实现小星星特效
Dec 24 Javascript
vue数据响应式原理知识点总结
Feb 16 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 curl的深入解析
2013/06/02 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
2013/06/24 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
fckeditor 获取文本框值的实现代码
2009/02/09 Javascript
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
深入探寻seajs的模块化与加载方式
2015/04/14 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
深入学习JavaScript中的Rest参数和参数默认值
2015/07/28 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
基于JS+Canves实现点击按钮水波纹效果
2016/09/15 Javascript
老生常谈jacascript DOM节点获取
2017/04/17 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
通过实例讲解JS如何防抖动
2019/06/15 Javascript
微信小程序实现类似微信点击语音播放效果
2020/03/30 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
Python之Web框架Django项目搭建全过程
2017/05/02 Python
浅谈python中的占位符
2017/11/09 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
国家地理在线商店:Shop National Geographic
2018/06/30 全球购物
大学生蛋糕店创业计划书
2014/01/13 职场文书
安全生产计划书
2014/05/04 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
家长对孩子的寒假评语
2015/10/09 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
Python pygame实现中国象棋单机版源码
2021/06/20 Python
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle