2015-06-12 9 views
5

सिर को कम करने के लिए रंग बदलना चाहिए, लेकिन परिवर्तन नहीं देखा जाता है, अगर मैं केवल मेनू खोलता हूं तो परिवर्तन देखा जा सकता है।सीएसएस परिवर्तन तुरंत लागू नहीं होते हैं

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

मेरी कक्षा:

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

और कोड:

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

डेमो

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

+2

प्रश्न स्पष्ट नहीं है (एक निर्भरता के रूप में $timeout जोड़ने के लिए भूल नहीं है)। क्या आप एक बेवकूफ साझा कर सकते हैं? – Navaneet

+0

हम्म, दिलचस्प विचार, यह सुनिश्चित नहीं है कि इसे कैसे ठीक किया जाए, अगर मैं आप थे तो मैं यह समझने की कोशिश करूंगा कि $ घड़ी, $ पाचन, और $ आवेदन कैसे इसे प्रबंधित कर रहे हैं। यदि आप स्क्रॉल करना प्रारंभ करते समय सही अपडेट नहीं कर रहे हैं तो यह एक समस्या हो सकती है। स्क्रॉलिंग शुरू होने पर आप शायद $ प्रसारण ईवेंट करने की कोशिश भी कर सकते हैं और उसके बाद उस ईवेंट के आधार पर कक्षा लागू कर सकते हैं। बस कुछ विचार, अगर आपको यह काम मिल जाए तो मुझे बताएं! –

उत्तर

2

मेरी धारणा है कि पचाने पाश संसाधित नहीं है whe है n आप $scope.isActive को प्रभावित करते हैं।

एक $timeout में लपेट की कोशिश करें

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

यह पूर्णता के लिए धन्यवाद प्राप्त किया गया था –

संबंधित मुद्दे