2014-09-21 66 views
7

我做了一個CSS3動畫連接到一個ng-repeat,然後顯示一個inline-list與Bootstrap3,我限制列表顯示的最大數量3,我有一些小問題,主要出現在Firefox(相信IE11沒有問題,哇,我很驚訝)。
我有2個按鈕(上一個/下一個),當我點擊下一個按鈕時,從左向右滑動的動畫開始執行他的工作,但在Firefox中點擊多次時,似乎動畫只能在2/3(基本上右邊的最後一項總是先顯示出來,沒有滑動,而其他的則從左向右滑動)。除此之外,有點難以解釋,但如果您嘗試plunker中的示例,您會看到效果。

正如我所說的這個問題只發生在目前爲止,只有在Firefox和Chrome和IE11似乎確定。

同樣,這裏是我plunker

我AngularJS控制器代碼CSS3動畫與AngularJS不能正確滑動在Firefox

<ul class="list-inline quotes"> 
    <li ng-repeat="quote in vm.marketDisplayedQuotes | limitTo:3" class="{{vm.animationClass}} quotes quote-{{$index}}"> 
     <span class="quote-name">{{quote.name}}</span> 
     <span class="quote-last">{{quote.last}}</span> 
     <span class="quote-change-percent {{quote.direction}}">{{quote.changePercent}}</span> 
    </li> 
</ul> 

,然後從左到右代號爲CSS動畫

/* Left to Right */ 
.animation-lr.ng-enter { 
    -webkit-transition: 1s ease-out all; 
    -o-transition: 1s ease-out all; 
    transition: 1s ease-out all; 

    -webkit-transform: translate(-100%,0); 
    -o-transform: translate(-100%,0); 
    transform: translate(-100%,0); 
} 

.animation-lr.ng-leave { 
    -webkit-transition: 0s ease-out all; 
    -o-transition: 0s ease-out all; 
    transition: 0s ease-out all; 

    -webkit-transform: translate(0,0); 
    -o-transform: translate(0,0); 
    transform: translate(0,0); 
} 

.animation-lr.ng-enter.ng-enter-active { 
    -webkit-transform: translate(0,0); 
    -o-transform: translate(0,0); 
    transform: translate(0,0); 
} 

.animation-lr.ng-leave.ng-leave-active { 
    -webkit-transform: translate(100%,0); 
    -o-transform: translate(100%,0); 
    transform: translate(100%,0); 
} 

你可以看到在打印屏幕我的影響「CAC」完全在右側(並且在那裏固定並且不移動),並非完全是滑動動畫效果的一部分

Right Text not sliding

+0

它很適合我的FF自己。 – PSL 2014-09-21 23:32:42

+0

難道你沒有最後一個總是出現在所有其他人之前,並沒有移動?我應該在我的另一臺計算機上嘗試,以確保 – ghiscoding 2014-09-21 23:40:40

+0

不存在。我發現它在Chrome上運行的很好。 – PSL 2014-09-21 23:41:38

回答

0

我分叉你的源代碼給你一個如何做到這一點的建議。 您的問題可能出現在您正在使用的庫的版本中。

解決方案: 1.更改庫的版本。 2.添加jQuery庫對角bestperformance 3.添加-moz-前綴CSS屬性動畫

-moz-transform '

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.0rc3/angular.js"></script> 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.0rc3/angular-animate.js"></script> 
<script type="text/javascript" src="script.js"></script> 

我加入這些變化,這是結果。你可以在這個plunker鏈接中看到它。我希望這有幫助。

http://embed.plnkr.co/Ry7WTBPZKxeHhL1V5jKy/

+0

你的問題可能是你正在使用的庫的版本 – clenondavis 2014-09-25 05:01:49

+0

我不想使用這樣一箇舊版本的Angular,你基本上是指着' 1.2.0 RC3'這是太舊了,甚至沒有發佈的版本......我寧願有一些與'1.2.2x'的最新版本工作,至於jQuery,是的,我確實使用jQuery(最新)在我真正的應用程序,最後加入'-moz-transform'並沒有做任何改變,因爲我相信Mozilla很久以前就從他們的CSS中去掉了'-moz'前綴。所有這些,如果AngularJS或Animate代碼出現問題,那麼Angular核心開發人員需要注意。感謝您的幫助 – ghiscoding 2014-09-25 05:16:31

+0

早上好,上帝保佑你。我知道你使用的版本比我使用的版本更新;這就是問題所在,你的mozilla版本可能不像你想使用的庫版本那樣運行。請記住,並非所有庫版本在所有瀏覽器版本中都能正常工作這就是我包括這些版本的原因。我用我的mozilla版本測試了你正在使用的庫版本,它不起作用。 – clenondavis 2014-09-25 15:35:21

1

我更新腳本庫的最新版本,它工作得很好。

jquery: 2.1.1 angular: 1.3.0 angular-animate: 1.3.0

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1-rc2/jquery.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.0-beta.13/angular.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.0-beta.13/angular-animate.js"></script>

我說這些變化,這就是結果。你可以在這個plunker鏈接中看到它。

http://embed.plnkr.co/Ry7WTBPZKxeHhL1V5jKy/preview

+0

哇,我知道你真的想要+50,我知道我說我更喜歡更新,但我也提到'1.2.2x',現在另一方面你真的給我一個工作解決方案(一種)雖然它仍然是一個未發佈的版本'1.3 RC3'截至目前...所以這裏的交易,我不能給你50分,因爲它不是一個正式版本(這是我想要的,也因爲1.3打破了一些我的代碼,雖然我沒有在我的問題中指定),所以我仍然更喜歡使用'1.2.2x'的工作解決方案我將等待,但如果真的是唯一的替代方案,我可能會接受它 – ghiscoding 2014-09-26 01:51:15

+0

原因對我的幫助不是爲了得分,而是爲了幫助你解決問題的方法。因爲這是主意,請幫助每個開發人員。我不是建築師的JavaScript,但我每天都通過幫助別人學到更多東西。但是謝謝你的分數。上帝保佑你 – clenondavis 2014-09-26 02:46:19

+0

再次感謝你的幫助,我不想冒犯你,我真的很感謝你幫助解決我的問題。我也像你一樣認爲回答問題,有時候問問題確實對彼此有幫助,所以我非常同意你的看法......據說,我真的希望找到一個當前版本的解決方案,提供更高的分數有助於提高可視性,我真的希望能夠使用這些'1.2.x'版本。非常感謝您的幫助和評論 – ghiscoding 2014-09-26 03:19:27

1

你最好使用角UI庫,將與carasoul工作非常好,我是有這個問題