欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Angular4.0動畫操作實(shí)例詳解

 更新時間:2019年05月10日 10:17:16   作者:徐行莫停  
這篇文章主要介紹了Angular4.0動畫操作,結(jié)合實(shí)例形式詳細(xì)分析了Angular4.0動畫的原理、定義及使用等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Angular4.0動畫操作。分享給大家供大家參考,具體如下:

粗略的記錄一下angular4的動畫

先看一下angular中文網(wǎng)關(guān)于這個給的例子。

有兩個組件home,about。 路徑配置什么的這里就不細(xì)說了,之前的博文有說過,我就貼一下代碼,很好理解的,

需要import的東西我先說一下,我只貼了使用動畫要用的東西,其他的我省略了,

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
@NgModule({
  ...
 imports: [
 BrowserModule,
 BrowserAnimationsModule,
 AppRouting
 ],
 ...
})

在這個簡單的例子里我要對app.component.html里的內(nèi)容進(jìn)行animate,所以我的

app.component.ts

@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css'],
 animations: [] // 這里代碼我省略了,先說一下結(jié)構(gòu),后面說具體實(shí)現(xiàn)。
})

以上就是需要寫動畫實(shí)現(xiàn)的基本結(jié)構(gòu),下面貼實(shí)現(xiàn)這個例子的代碼。為了方便閱讀,我把代碼解釋就貼在代碼旁邊

例一:

這是路由配置:

import {RouterModule, Routes} from '@angular/router';
import {HomeComponent} from "./home/home.component";
import {AboutComponent} from "./about/about.component";
const routes: Routes = [
 { path: '', redirectTo: 'home', pathMatch: 'full' },
 { path: 'home', component: HomeComponent, data: { state: 'home' } },
 { path: 'about', component: AboutComponent, data: { state: 'about' } }
];
export const AppRouting = RouterModule.forRoot(routes, {
 useHash: true
});

app.component.html

<nav>
 <a routerLink="home" routerLinkActive="active">Home</a>
 <a routerLink="about" routerLinkActive="active">About</a>
</nav>
<main [@routerTransition] = "gg(o)">
 <router-outlet #o="outlet"></router-outlet>
</main>
<div [@queryAnimation]="goAnimate()">
 <div class="content">
 Blah blah blah
 </div>
 <h1>Title</h1>
</div>
 <!-- 
 [@routerTransition]="gg(o)" ,api:transition declares the sequence of animation steps that will be run when the provided stateChangeExpr value is satisfied. stateChangeExpr即等號左邊即動畫名稱,注意中括號和@符不能省略,等號右邊是一個函數(shù),也可以是變量,滿足條件便可以讓動畫進(jìn)行,一個動畫可以多次使用 
 -->

app.component.ts

import { Component } from '@angular/core';
import {routerTransition} from './router.animation';
import {animate, group, query, stagger, style, transition, trigger} from "@angular/animations";
@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css'],
 animations: [
 trigger('routerTransition', [ // 第一個參數(shù)是動畫名稱 stateChangeExpr
  transition('* <=> *', [ // 指定什么時候執(zhí)行動畫,狀態(tài)的來源可以是簡單的對象屬性,也可以是由方法計(jì)算出來的值。重點(diǎn)是,我們得能從組件模板中讀取它。官網(wǎng)上有提供一些通配符,[傳送門](https://angular.cn/api/animations/transition)
  query(':enter, :leave', style({ position: 'fixed', width: '100%' }), { optional: true }),
  query('.block', style({ opacity: 0 }), { optional: true }),
  group([ // block executes in parallel
      query(':enter', [style({ transform: 'translateX(100%)' }),
      animate('0.5s ease-in-out', style({ transform: 'translateX(0%)' }))], { optional: true }),
      query(':leave', [style({ transform: 'translateX(0%)' }),
      animate('0.5s ease-in-out', style({ transform: 'translateX(-100%)' }))], { optional: true })
     ]),
   query(':enter .block', stagger(400, [style({ transform: 'translateY(100px)' }),
      animate('1s ease-in-out', style({ transform: 'translateY(0px)', opacity: 1 })),
    ]), { optional: true }),
  ])
 ]),
]
})
export class AppComponent {
 public exp = '';
 gg(outlet) { // 傳遞進(jìn)入的組件的信息
 console.log(outlet.activatedRouteData.state);
 return outlet.activatedRouteData.state;
 }
}

效果動圖在最后。

比對著官網(wǎng)給的API,總結(jié)一下動畫部分~

我是按自己的理解說的,有不對的地方還請多多指教,共勉!O(∩_∩)O~

  • stateChangeExpr

即動畫名稱,它的屬性值可以是字符串也可以是函數(shù),若是函數(shù),則每次狀態(tài)發(fā)生改變都會重新執(zhí)行,若函數(shù)返回true,則對應(yīng)的動畫就會執(zhí)行。

  • transition

它里面的動畫只在滿足條件時執(zhí)行,過了這個點(diǎn)它就變回原始樣式了,

  • state

可以保持動畫樣式

  • :enter 、 :leave

即對應(yīng)void => * 、 * => void 狀態(tài)

例子二

app.component.html

<div [@queryAnimation]="goAnimate()">
 <h1>Title</h1>
 <div class="content">
 Blah blah blah
 </div>
</div>

app.component.ts

import { Component } from '@angular/core';
import {animate, group, query, stagger, state, style, transition, trigger} from "@angular/animations";
@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css'],
 animations: [
 trigger('queryAnimation', [
  transition('* => *', [
   query('h1', style({ opacity: 0 , color: 'red'})),
   query('.content', style({ opacity: 0, color: 'green', width: '100px', height: '100px', border: '1px solid red' })),
   query('h1', animate(1000, style({ opacity: 1, color: ' blue' }))),
   query('.content', animate(1000, style({ opacity: 1, width: '50px', height: '100px', border: '10px solid green'})),
    {optional: true}),
 ]),
  transition(':leave', [
  style({color: 'pink'}),
  animate(2000)
  ])
]),
]
})
export class AppComponent {
 public gg: string;
 constructor() {
 }
 goAnimate() {
 return true;
 }
}

這個gif有點(diǎn)卡,但是可以大概看出路由切換時是有動畫的。這是上面兩個例子的效果圖

state只能放在trigger里,不能擱在transition里

目前就這么點(diǎn),才看了一點(diǎn),以后慢慢補(bǔ)充~~~

更多關(guān)于AngularJS相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《AngularJS指令操作技巧總結(jié)》、《AngularJS入門與進(jìn)階教程》及《AngularJS MVC架構(gòu)總結(jié)

希望本文所述對大家AngularJS程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Angular.JS去掉訪問路徑URL中的#號詳解

    Angular.JS去掉訪問路徑URL中的#號詳解

    最近天天都在用AngularJS,各類文檔也都看過好幾遍,但總是些編程上的事找不到優(yōu)雅的解決辦法。今天終于把AngularJS的項(xiàng)目訪問路徑URL里的#號去掉了,這個問題不見得有多難,關(guān)鍵是花多長時間去理解AngularJS框架本身,下面來看看詳細(xì)介紹,需要的朋友可以參考下。
    2017-03-03
  • angular $watch 一個變量的變化(實(shí)例講解)

    angular $watch 一個變量的變化(實(shí)例講解)

    下面小編就為大家?guī)硪黄猘ngular $watch 一個變量的變化(實(shí)例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • AngularJS基于factory創(chuàng)建自定義服務(wù)的方法詳解

    AngularJS基于factory創(chuàng)建自定義服務(wù)的方法詳解

    這篇文章主要介紹了AngularJS基于factory創(chuàng)建自定義服務(wù)的方法,結(jié)合實(shí)例形式分析了AngularJS使用factory創(chuàng)建自定義服務(wù)的具體步驟、操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-05-05
  • Angular 4依賴注入學(xué)習(xí)教程之Injectable裝飾器(六)

    Angular 4依賴注入學(xué)習(xí)教程之Injectable裝飾器(六)

    這篇文章主要給大家介紹了關(guān)于Angular 4依賴注入之Injectable裝飾器的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-06-06
  • Angular指令之restict匹配模式的詳解

    Angular指令之restict匹配模式的詳解

    這篇文章主要介紹了Angular指令之restict匹配模式的詳解的相關(guān)資料,這里對Angularjs 中restict匹配模式進(jìn)行詳解并列舉了四種模式進(jìn)行比較,需要的朋友可以參考下
    2017-07-07
  • angular實(shí)現(xiàn)頁面打印局部功能的思考與方法

    angular實(shí)現(xiàn)頁面打印局部功能的思考與方法

    這篇文章主要給大家介紹了關(guān)于angular實(shí)現(xiàn)頁面打印局部功能的思考與方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • 簡單談?wù)勱P(guān)于Angular Cli打包的事

    簡單談?wù)勱P(guān)于Angular Cli打包的事

    使用過angular2人都應(yīng)該知道,angular2提供的Angular CLI來快速搭建,快速生成serives、component、derective、modulet各種模板...下面這篇文章主要給大家介紹了關(guān)于Angular Cli打包的一些事,需要的朋友可以參考下。
    2017-09-09
  • 在 Angular2 中實(shí)現(xiàn)自定義校驗(yàn)指令(確認(rèn)密碼)的方法

    在 Angular2 中實(shí)現(xiàn)自定義校驗(yàn)指令(確認(rèn)密碼)的方法

    這篇文章給大家探索 Angular 2 內(nèi)建的自定義驗(yàn)證,非常不錯,具有參考借鑒價值,需要的朋友參考下
    2017-01-01
  • angularJS與bootstrap結(jié)合實(shí)現(xiàn)動態(tài)加載彈出提示內(nèi)容

    angularJS與bootstrap結(jié)合實(shí)現(xiàn)動態(tài)加載彈出提示內(nèi)容

    這篇文章主要介紹了angularJS與bootstrap結(jié)合實(shí)現(xiàn)動態(tài)加載彈出提示內(nèi)容,通過bootstrp彈出提示。感興趣的朋友可以參考下本篇文章
    2015-10-10
  • 詳解angularjs中如何實(shí)現(xiàn)控制器和指令之間交互

    詳解angularjs中如何實(shí)現(xiàn)控制器和指令之間交互

    本篇文章主要介紹了詳解angularjs中如何實(shí)現(xiàn)控制器和指令之間交互,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評論