各位好,
我想要做一個可以執行動畫的訊息頁面,程式如下圖,由於在舊的android 4.4.4跑,我無法使用angular內建的animation,所以我改成css3,當程式第一次進來或執行loaddata()時,動畫可以順利動作,但再執行loadendata()時只有變更內容,但動畫不會動作,我能否在loadendata()事件中讓html的14行如loaddata()執行,我試過this.chbuss=[…this.chbuss];及this.chbuss=this.chbuss.slice();都沒作用,卡關好久,請幫我看看是否有解,感謝。
請問有試看看用 ngOnChanges 嗎?
CSS3 的部分應該是用 CSS class 去套對嗎?
那要不要試著建立一個專門跑動畫的 class ,只有這個 class 加入的時候去執行特效。
之後要再觸發的話,你再把 class 拿掉重加一次,這招也許有用。
另外可以的話,小小建議可以多換行幾次,閱讀起來會比較輕鬆喔!
目前還沒遇過,原來 4.4.4 的 angular animation 會死掉阿…
請問動畫效果的 class 名稱是哪一個?
ngClass 的部分嗎? 如果兩個 class 的動畫效果都是一樣的,可能是在切換的時候就已經到達定位了。
因此不會再次顯示效果,還不確定是哪個,這樣看不好說,
如果有範例可以還原問題的話就更好了。
可利用 markdown hightlight 程式碼的語法來標示,這樣子其他人比較容易將你的程式碼,拿去做測試
還沒用過Markdown,是否如下:
.en {
/* Safari 4.0 - 8.0 */
-webkit-animation-name: to180;
-webkit-animation-duration: 2s;
-webkit-animation-timing-function: ease-out;
/* Standard syntax */
animation-name: to180;
animation-duration: 2s;
animation-timing-function: ease-out;
animation-fill-mode: forwards;
}
.ch {
/* Safari 4.0 - 8.0 */
-webkit-animation-name: to180;
-webkit-animation-duration: 2s;
-webkit-animation-timing-function: ease-out;
-webkit-animation-direction: reverse;
/* Standard syntax */
animation-name: to180;
animation-duration: 2s;
animation-timing-function: ease-in;
animation-direction: reverse;
animation-fill-mode: forwards;
}
@-webkit-keyframes to180 {
0% {
transform: rotateX(0deg);
z-index: 100;
}
100% {
transform: rotateX(180deg);
z-index: 0;
}
}
/* Standard syntax */
@keyframes to180 {
0% {
transform: rotateX(0deg);
z-index: 100;
}
50% {
transform: rotateX(90deg);
z-index: 0;
}
100% {
transform: rotateX(180deg);
z-index: 0;
}
}
我修正了一下你的文章,你看一下我修正後的寫法。在 code hightlight 的地方你可以指定要顯示的語言是哪一種
例如 css, html, javascript, typescript 等
可以使用的編輯方式可以參考這篇文章
Markdown
Simple: the Markdown implementation is very close to the standard.
1個讚