我有一些奇怪的問題ng-class
,我懷疑它與比賽條件有關。ng級和動畫的比賽條件
這裏是plunker example
下面是相關的js代碼
self.slideLeft = function() {
if (self.end_index < self.list_of_stuff.length) {
self.direction = 'left';
debugger;
self.start_index = self.start_index + 4;
self.end_index = self.end_index + 4;
self.display_list = self.list_of_stuff.slice(self.start_index, self.end_index);
}
}
self.slideRight = function() {
if (self.start_index > 0) {
self.direction = 'right';
debugger;
self.start_index = self.start_index - 4;
self.end_index = self.end_index - 4;
self.display_list = self.list_of_stuff.slice(self.start_index, self.end_index);
}
}
下面是相關的HTML
<div class="stuff-wrapper">
<div class="stuff"
ng-class="bCtrl.directionClass()"
ng-repeat="stuff in bCtrl.display_list">
{{stuff}}
</div>
</div>
這裏是動畫。
.left.ng-enter,
.left.ng-leave {
-webkit-transition: all 1s ease-in-out;
}
.left.ng-enter {
transition-delay: 0.7s;
opacity: 0;
left: 10%;
}
.left.ng-enter-active {
opacity: 1;
left: 0;
}
.left.ng-leave {
opacity: 1;
left: -10%;
}
.left.ng-leave-active {
left: -20%;
opacity: 0;
}
這是一個簡單的應用程序,可以左右滑動數字列表。
如果按下左按鈕,則數字向左滑動。
如果按下右鍵,則數字向右滑動。
但是我們看到,如果方向發生改變,數字將首先滑向錯誤的方向,隨後的方向將是正確的。
我懷疑這是由於比賽條件。
的確,我看到ng-class
在我使用調試器改變方向self.direction
後沒有得到應用。
這很好奇。
有沒有辦法解決這個問題?