最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

angular使用TweenMax動畫庫的問題和解決方法

 更新時間:2021年03月18日 10:41:36   作者:munergs  
這篇文章主要給大家介紹了關于angular使用TweenMax的相關問題和解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

最近閑來無事,搗鼓搗鼓CSS

發(fā)現(xiàn)了一個比較好動畫庫,就是TweenMax

用起來略微有點麻煩,但是效果確實可以。

首先在angular中使用TweenMax就得先通過npm 安裝

1.  npm install --save-dev gsap
2.  npm install --save-dev @types/gsap

然后再引入

import {TweenMax} from "gsap";

就可以在頁面中使用了。

遇到的第一個問題就是,想要動畫通過按鈕觸發(fā)來不停的播放
但是動畫播完一遍以后,怎點按鈕都不會觸發(fā)

后面找到了原因,需要在反復觸發(fā)的時候,改變其位置才行,比如說一開始的X為500,動畫播完后X的位置就是500了,再反復觸發(fā),位置還是500所以不會有作用,所以想要反復觸發(fā),就得修改其位置

this.test = new TweenMax('.box',3,{
   x:this.direction?0:500,
   ease:Bounce.easeOut
  })

第二個問題就是,在頁面上,想要在動畫過程中和結束以后改變藍色按鈕的狀態(tài)和文字,結果發(fā)現(xiàn)直接用綁定在按鈕上的屬性不能夠完成這個操作

<button [disabled]="isMoveing" style="margin-top: 10px;" nz-button nzType="primary" (click)="repeat()">
  {{describle}}
</button>

this.test = new TweenMax('.box',3,{
   x:this.direction?0:500,
   ease:Bounce.easeOut,
   onStart:function(){
    this.describle = '運動中'
    this.isMoveing = true
   },
   onComplete:function(){
    this.describle = '動'
    this.isMoveing = false
   }
  })

通過一番折騰發(fā)覺,其實是this指向的問題

上圖可以看到,在TweenMax方法中,this指向的是Tween這個方法本身,而我們需要改變的對象,是處在組件中的,也就是下圖所示

定位到了問題所在處,那解決起來就比較簡單了,在函數(shù)作用域之外的地方定義一個元素指向正確的this就行

let _this = this
this.test = new TweenMax('.box',3,{
   x:this.direction?0:500,
   ease:Bounce.easeOut,
   onStart:function(){
    _this.describle = '運動中'
    _this.isMoveing = true
   },
   onComplete:function(){
    _this.describle = '動'
    _this.isMoveing = false
   }
  })

這樣就正常了。

總結

到此這篇關于angular使用TweenMax動畫庫的文章就介紹到這了,更多相關angular使用TweenMax內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

阜新| 蓝田县| 新河县| 无锡市| 义乌市| 建水县| 筠连县| 和平县| 尤溪县| 锡林郭勒盟| 邻水| 秭归县| 扶绥县| 博湖县| 宁晋县| 台东市| 阳原县| 邛崃市| 新泰市| 福清市| 收藏| 礼泉县| 赣榆县| 通海县| 来宾市| 长沙县| 进贤县| 辽宁省| 龙川县| 嘉义县| 阿坝县| 高清| 衡阳市| 古浪县| 乐业县| 专栏| 浙江省| 鹤山市| 芒康县| 台北县| 武穴市|