2015-06-12 16 views
5

để hạ đầu nên thay đổi màu sắc, nhưng thay đổi không được nhìn thấy, nếu tôi mở menu chỉ thì thay đổi có thể được nhìn thấy.Thay đổi CSS không được áp dụng ngay lập tức

<ion-header-bar class="thediv" ng-class="{scrolling: isActive}"> 
    <ion-nav-bar class="bar-clear " >   
    </ion-nav-bar> 
    </ion-header-bar> 

lớp học của tôi:

.scrolling{ 
    background-color: red !important; 
} 

và mã:

if ($ionicScrollDelegate.$getByHandle('contentScroll').getScrollPosition().top > 100) {  
    $scope.isActive = true; 
} else { 
    $scope.isActive = false; 
} 

Demo

http://virtual-host-discourse.global.ssl.fastly.net/uploads/ionicframework/optimized/2X/7/7fcbaa68a40008e90de10292d80559c3eb5e17bf_1_326x500.gif

+2

Câu hỏi đặt ra là không rõ ràng. Bạn có thể vui lòng chia sẻ một fiddle? – Navaneet

+0

Hmm, ý tưởng thú vị, không chắc chắn làm thế nào để sửa chữa nó, nếu tôi là bạn tôi sẽ cố gắng tìm ra cách $ xem, $ tiêu hóa, và $ áp dụng được xử lý nó. Nếu nó không cập nhật ngay khi bạn bắt đầu cuộn có thể là một vấn đề. Bạn cũng có thể cố gắng thực hiện một sự kiện phát sóng $ khi cuộn bắt đầu và sau đó áp dụng lớp dựa trên sự kiện đó. Chỉ cần một số ý tưởng, cho tôi biết nếu bạn làm cho nó hoạt động! –

Trả lời

2

giả định của tôi là tiêu hóa vòng lặp không được xử lý whe n bạn ảnh hưởng đến $scope.isActive.

Cố gắng quấn nó thành một $timeout (đừng quên để thêm $timeout như một sự phụ thuộc)

if ($ionicScrollDelegate.$getByHandle('contentScroll').getScrollPosition().top > 100) {  
    $timeout(function(){ 
    $scope.isActive = true; 
    },0) 
} else { 
    $timeout(function(){ 
    $scope.isActive = false; 
    },0) 
} 
+1

Điều này đạt được nhờ sự hoàn hảo –

Các vấn đề liên quan