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
})

第二個問題就是,在頁面上,想要在動畫過程中和結(jié)束以后改變藍色按鈕的狀態(tài)和文字,結(jié)果發(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
}
})
這樣就正常了。
總結(jié)
到此這篇關(guān)于angular使用TweenMax動畫庫的文章就介紹到這了,更多相關(guān)angular使用TweenMax內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
angular使用md5,CryptoJS des加密的方法
這篇文章主要介紹了angular使用md5,CryptoJS des加密的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-06-06
Web開發(fā)使用Angular實現(xiàn)用戶密碼強度判別的方法
這篇文章主要介紹了Web開發(fā)使用Angular實現(xiàn)用戶密碼強度判別的方法,需要的朋友可以參考下2017-09-09
深入學習AngularJS中數(shù)據(jù)的雙向綁定機制
這篇文章主要介紹了AngularJS中數(shù)據(jù)的雙向綁定機制,雙向綁定使得HTML中呈現(xiàn)的view與AngularJS中的數(shù)據(jù)一致,是Angular的重要特性之一,需要的朋友可以參考下2016-03-03
AngularJS的ng Http Request與response格式轉(zhuǎn)換方法
這篇文章主要介紹了AngularJS的ng Http Request與response格式轉(zhuǎn)換方法,結(jié)合實例形式分析了AngularJS實現(xiàn)Request與response格式轉(zhuǎn)換操作的相關(guān)設置與使用技巧,需要的朋友可以參考下2016-11-11
使用 Github Actions 自動部署 Angular 應用到 Github Pages的方法
這篇文章主要介紹了使用 Github Actions 自動部署 Angular 應用到 Github Pages,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
AngularJS模仿Form表單提交的實現(xiàn)代碼
本文通過一段實例代碼給大家簡單介紹了angularjs模仿form表單提交的方法,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧2016-12-12
AngularJS入門教程二:在路由中傳遞參數(shù)的方法分析
這篇文章主要介紹了AngularJS在路由中傳遞參數(shù)的方法,結(jié)合實例形式分析了AngularJS實現(xiàn)路由中傳遞參數(shù)的相關(guān)技巧,并總結(jié)了相關(guān)操作步驟與注意事項,需要的朋友可以參考下2017-05-05

